如何在Swift语言中传递一个错误指针?
我试图在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)") }
这里有两点要注意:
-
NSError?
是可选的(初始化nil
) - 您使用
&
运算符(例如,&error
)通过引用传递
请参阅: 使用cocoa和目标c的swift
这个build议需要讨论,但是一些工程师更喜欢使用黄金path语法:
var maybeError: NSError? if let results = context.executeFetchRequest(request, error: &maybeError) { // Work with results } else if let error = maybeError { // Handle the error }