【发布时间】:2016-06-13 23:06:49
【问题描述】:
在 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,而不是使用 nil 值初始化 NSZone 的旧 NSZone() 初始化程序?
尝试扩展NSZone 以添加初始化程序会导致错误:
extension NSZone {
init() { } // Return from initializer without initializing all stored properties
}
【问题讨论】: