Прочитав следующее из NSHipster, я задумался о NSError и о том, можно ли что-то настроить, чтобы NSError неявно преобразуется в пользовательский тип ошибки.
Я создал следующее:
protocol NSErrorConvertible {
init(error: NSError)
}
и это
struct CustomError: NSErrorConvertible {
var message: String
var code: String?
init(error: NSError) {
code = String(error.code)
message = error.localizedDescription
}
}
Однако я не вижу ничего, что могло бы привести к неявному преобразованию.
Я знаю, что такая функция существует в C++ с конструктором с одним аргументом. Есть ли что-то подобное в Swift с использованием протоколов или чего-то еще?