2016-06-13 6 views
1

와 빈 NSZone 구조체를 초기화, 난과 같이 빈 NSZone 구조체를 초기화 할 수 있었다 : 스위프트 2에서 스위프트 3

let z = NSZone() // ObjectiveC.NSZone 

내가 NSZone을 필요한 테스트 호출을 스텁이 사용된다.

스위프트 2.3 :

public struct NSZone : NilLiteralConvertible { 
    public init() 
    /// Create an instance initialized with `nil`. 
    public init(nilLiteral:()) 
} 

스위프트 3 :

public struct NSZone { 
} 

애플이 대신 선택 NSZone를 사용하도록 추진하고있다 이니셜 라이저를 더 이상 사용할 수 없도록 스위프트 3, 인터페이스가 변경되었습니다 nil 값으로 NSZone을 초기화 한 이전 NSZone() 초기화 프로그램 중?

봅니다 오류에 초기화 결과를 추가 NSZone을 확장하기 : 당

extension NSZone { 
    init() { } // Return from initializer without initializing all stored properties 
} 

답변

3

을 스위프트 오픈 소스 프로젝트의 design doc 스위프트 3에 ObjC API를 가져 오기 :

Nullable NSZone parameters are given a default value of nil . Zones are essentially unused in Swift and should always be nil .

당신이 경우 영역이 필요한 호출을 테스트하는 경우 nil을 전달해야합니다.