使用 Swift 3 初始化一个空的 NSZone 结构
Init an empty NSZone struct with Swift 3
在 Swift 2 中,我能够像这样初始化一个空的 NSZone
结构:
let z = NSZone() // ObjectiveC.NSZone
我用它来存根测试需要 NSZone
的调用。使用 Swift 3,接口已更改,因此初始化程序不再可用:
Swift 2.3:
public struct NSZone : NilLiteralConvertible {
public init()
/// Create an instance initialized with `nil`.
public init(nilLiteral: ())
}
Swift 3:
public struct NSZone {
}
Apple 是否正在推动使用可选的 NSZone
而不是使用 nil
值初始化 NSZone
的旧 NSZone()
初始化程序?
尝试扩展 NSZone
以添加初始化程序导致错误:
extension NSZone {
init() { } // Return from initializer without initializing all stored properties
}
根据 Swift 开源项目的 design doc 将 ObjC API 导入 Swift 3:
Nullable NSZone parameters are given a default value of nil
. Zones are essentially unused in Swift and should always be nil
.
如果您正在测试任何需要区域的调用,无论如何您都应该通过 nil
。
在 Swift 2 中,我能够像这样初始化一个空的 NSZone
结构:
let z = NSZone() // ObjectiveC.NSZone
我用它来存根测试需要 NSZone
的调用。使用 Swift 3,接口已更改,因此初始化程序不再可用:
Swift 2.3:
public struct NSZone : NilLiteralConvertible {
public init()
/// Create an instance initialized with `nil`.
public init(nilLiteral: ())
}
Swift 3:
public struct NSZone {
}
Apple 是否正在推动使用可选的 NSZone
而不是使用 nil
值初始化 NSZone
的旧 NSZone()
初始化程序?
尝试扩展 NSZone
以添加初始化程序导致错误:
extension NSZone {
init() { } // Return from initializer without initializing all stored properties
}
根据 Swift 开源项目的 design doc 将 ObjC API 导入 Swift 3:
Nullable NSZone parameters are given a default value of
nil
. Zones are essentially unused in Swift and should always benil
.
如果您正在测试任何需要区域的调用,无论如何您都应该通过 nil
。