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 be nil .

如果你测试任何需要区域的呼叫,您应该通过nil