INIT空NSZone结构与夫特3
问题描述:
在夫特2,我能够初始化一个空NSZone
结构如下所示:INIT空NSZone结构与夫特3
let z = NSZone() // ObjectiveC.NSZone
我用这个末梢所需NSZone
测试呼叫。随着斯威夫特3,接口被改变,从而初始化不再可用:
雨燕2.3:
public struct NSZone : NilLiteralConvertible {
public init()
/// Create an instance initialized with `nil`.
public init(nilLiteral:())
}
斯威夫特3:
public struct NSZone {
}
是苹果推到使用可选NSZone
代替NSZone()
初始化程序初始化NSZone
的值为nil
的值?
尽量延长NSZone
发生错误,添加一个初始化的结果:
extension NSZone {
init() { } // Return from initializer without initializing all stored properties
}
答
每雨燕开源项目的design doc导入ObjC API到斯威夫特3:
Nullable NSZone parameters are given a default value of
nil
. Zones are essentially unused in Swift and should always benil
.
如果你测试任何需要区域的呼叫,您应该通过nil
。