3

具有以下内容的文件:

public class Foo {
  var x : Int = 0  
  var y : Unit?
}

当作为“MacOS 框架”的一部分编译成功时(在 Xcode 8 beta 中)。注意没有import声明;我希望该符号Unit不受约束 - 但显然它是从最新的 MacOS '基础'中找到的。

如何确保文件编译时没有Unit符号?

注意:如果我用then从命令行编译swift File.swift,其实Unit是未绑定的,如愿:

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

而且,如果我使用 Swift 包管理器进行编译,则不会隐式导入 Foundation。

那么,Xcode 是如何隐式插入import我不需要的呢?

4

1 回答 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为空。

于 2016-07-17T23:31:31.323 回答