如何在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)") } 

这里有两点要注意:

  1. NSError? 是可选的(初始化nil
  2. 您使用&运算符(例如, &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 }