Programing

Swift 언어로 오류 포인터를 전달하는 방법은 무엇입니까?

lottogame 2021. 1. 7. 07:31
반응형

Swift 언어로 오류 포인터를 전달하는 방법은 무엇입니까?


신속하게 오류 포인터를 전달하려고하는데 그렇게 할 수 없습니다. 컴파일러는 "NSError는 'NSErrorPointer'로 변환 할 수 없습니다"라고 불평합니다.

var error: NSError = NSError()
var results = context.executeFetchRequest(request, error: error)

if(error != nil)
{
    println("Error executing request for entity \(entity)")
}

다음과 같이 참조를 전달합니다.

var error: NSError?
var results = context.executeFetchRequest(request, error: &error)

if error != nil {
    println("Error executing request for entity \(entity)")
}

여기에 두 가지 중요한 사항이 있습니다.

  1. NSError?는 선택 (및 초기화입니다 nil)
  2. 사용자가 사용하는 참조로 전달 &연산자 (예 &error)

참조 : cocoa 및 objective-c와 함께 swift 사용


이 제안은 논의를위한 것이지만 일부 엔지니어는 골든 경로 구문을 사용하는 것을 선호합니다.

var maybeError: NSError?
if let results = context.executeFetchRequest(request, error: &maybeError) {
    // Work with results
} else if let error = maybeError {
    // Handle the error
}

참조 URL : https://stackoverflow.com/questions/24084701/how-to-pass-an-error-pointer-in-the-swift-language

반응형