在 Swift 2 中,我能够NSZone
像这样初始化一个空结构:
let z = NSZone() // ObjectiveC.NSZone
我用它来存根需要的测试调用NSZone
。在 Swift 3 中,接口已更改,因此初始化程序不再可用:
斯威夫特 2.3:
public struct NSZone : NilLiteralConvertible {
public init()
/// Create an instance initialized with `nil`.
public init(nilLiteral: ())
}
斯威夫特 3:
public struct NSZone {
}
Apple 是否正在推动使用可选项而不是使用值初始化NSZone
的旧NSZone()
初始化程序?NSZone
nil
尝试扩展NSZone
以添加初始化程序会导致错误:
extension NSZone {
init() { } // Return from initializer without initializing all stored properties
}