Почему PKPass принимает указатель ошибки?
Согласно документации Apple, для инициализации PKPass в Swift требуется два элемента: данные Pass и указатель ошибки.
init(data data: NSData,
error error: NSErrorPointer)
Согласно документации Apple Swift, параграф Обработка ошибок,
В Какао методы, которые генерируют ошибки, принимают параметр указателя 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)")
}
В чем я горько не понимаю, или, возможно, в чем причина этого очевидного несоответствия?