Swift 带额外符号的标准库
Swift Standard Library w/ Extra Symbols
包含以下内容的文件:
public class Foo {
var x : Int = 0
var y : Unit?
}
当编译为 'MacOS Framework' 的一部分时成功(在 Xcode 8 beta 中)。请注意,没有 import
语句;我希望符号 Unit
不受约束 - 但显然它是从最新的 MacOS 'foundation'.
中找到的
如何确保文件被编译成 w/o Unit
符号?
注意:如果我使用 swift File.swift
从命令行编译,那么,实际上 Unit
是未绑定的,正如所希望的那样:
File.swift:12:11: error: use of undeclared type 'Unit'
var y : Unit?
并且,如果我使用 Swift 包管理器编译,则不会隐式导入 Foundation。
那么,Xcode 如何插入我不需要的隐式 import
?
构建框架时,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
编辑为空。
包含以下内容的文件:
public class Foo {
var x : Int = 0
var y : Unit?
}
当编译为 'MacOS Framework' 的一部分时成功(在 Xcode 8 beta 中)。请注意,没有 import
语句;我希望符号 Unit
不受约束 - 但显然它是从最新的 MacOS 'foundation'.
如何确保文件被编译成 w/o Unit
符号?
注意:如果我使用 swift File.swift
从命令行编译,那么,实际上 Unit
是未绑定的,正如所希望的那样:
File.swift:12:11: error: use of undeclared type 'Unit'
var y : Unit?
并且,如果我使用 Swift 包管理器编译,则不会隐式导入 Foundation。
那么,Xcode 如何插入我不需要的隐式 import
?
构建框架时,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
编辑为空。