Swift标准库带有额外符号

3
以下是文件内容:
public class Foo {
  var x : Int = 0  
  var y : Unit?
}

作为“MacOS Framework”的一部分进行编译会成功(在Xcode 8 beta中)。请注意,没有import语句;我希望符号Unit是未绑定的 - 但显然它是从最新的MacOS“foundation”中被找到的。

如何确保该文件在不使用Unit符号的情况下被编译?

注意:如果我使用命令行编译swift File.swift,那么实际上Unit是未绑定的,就像期望的那样:

File.swift:12:11: error: use of undeclared type 'Unit'
  var y : Unit?

如果我使用Swift Package Manager编译,则Foundation不会被隐式导入。那么,Xcode是如何插入我不需要的隐式导入呢?

1
我也有同样的问题。我在Swift开源之前创建了SwiftFoundation,但现在无法在Xcode 8中使用它。 - ColemanCDA
1个回答

0

在构建框架时,Xcode会创建一个名为TheFramework.h的头文件,其中包含以下内容:

#import <Cocoa/Cocoa.h>

//! Project version number for SBFrames.
FOUNDATION_EXPORT double TheFrameworkVersionNumber;

//! Project version string for SBFrames.
FOUNDATION_EXPORT const unsigned char TheFrameworkVersionString[];
#endif

Cocoa.h 的引入导入了 Foundation。为避免包含 Foundation,请将 TheFramework.h 编辑为空。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接