为什么PKPass会使用错误指针?

时间:2015-11-10 12:15:02

标签: ios swift passkit

根据Apple的documentation,在Swift中初始化PKPass需要两个元素,即Pass数据和错误指针。

init(data data: NSData,
error error: NSErrorPointer)

根据Apple的Swift documentation错误处理段落,

  

在Cocoa中,产生错误的方法采用NSError指针   参数作为最后一个参数,用其填充参数   如果发生错误,则为NSError对象。 Swift自动翻译   Objective-C方法在抛出的方法中产生错误   根据Swift的本机错误处理功能错误。

但是有一个注意事项:

  

消耗错误的方法,例如委托方法或方法   使用NSError对象参数获取完成处理程序,不要   成为Swift导入时抛出的方法。

由于该方法似乎并不消耗,而是在需要时使用指针设置错误,这似乎违背了Apple对错误处理的解释。我期待更多的代码:

  do {
      let modifiedPass : PKPass = try PKPass(data: data)
     } catch let errorCaught as NSError
     {
        print("Error: \(errorCaught.domain)")
    }

我有什么可悲的误解,或者可能是什么原因造成这种明显的不匹配?

0 个答案:

没有答案