Apple のドキュメントによると、Swift で PKPass を初期化するには、パス データとエラー ポインターの 2 つの要素が必要です。
init(data data: NSData,
error error: NSErrorPointer)
Apple のSwift のドキュメント、エラー処理の段落によると、
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)")
}
私は何をひどく誤解していますか、あるいはこの明らかな不一致の理由は何ですか?