2016-10-11 3 views
2

Swift 2.2에서는 유효한 매개 변수로 이 필요한 유효한 매개 변수로 nil을 전달할 수있었습니다. 스위프트 3, 나는 더 이상 할 수 없다 :UnsafePointer로 nil 전달 <UInt8>

func myFuncThatTakesAPointer(buffer: UnsafePointer<UInt8>, length: Int) { /** **/ } 

myFuncThatTakesAPointer(buffer: nil, length: 0) 
Playground execution failed: error: Xcode8Playground-iOS.playground:62:33: error: nil is not compatible with expected argument type 'UnsafePointer<UInt8>' 
myFuncThatTakesAPointer(buffer: nil, length: 0) 
           ^

내가 지금 선택으로 내 함수의 포인터 선언을 지정할 필요가 있습니까?

+4

확인하세요 [이 (https://github.com/apple/swift-evolution/blob/master/proposals/0055-optional-unsafe-pointers.md). – OOPer

답변

3

저는 이제 함수로 포인터 선언을 옵션으로 지정해야합니까?

한 마디로 예. release notes에서 :

유형 UnsafePointer, UnsafeMutablePointer, AutoreleasingUnsafeMutablePointer, OpaquePointer, 선택기, 그리고 NSZone 지금 nullable이 아닌 포인터 - 즉, 전무 결코 포인터를 나타냅니다. nullable 포인터는 이제 Optional을 사용하여 표현됩니다 (예 : UnsafePointer<Int>?).

+0

감사합니다 매트, 200k에 축하해! – JAL

+0

고마워.하지만 네가 원한다면 나를 위에 올려 놓을 필요는 없어. 내가 거기 갈거야. :) 나는 나의 대답이 일종의 고민 거리라는 것을 알고있다. :))) – matt

+0

모두 좋습니다. 분명히 언어 제안을 읽는 데 더 많은 시간을 할애해야합니다. – JAL

관련 문제