根据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)")
}
我有什么可悲的误解,或者可能是什么原因造成这种明显的不匹配?