У меня есть класс ошибок:
public enum ModelError: Error {
case invalidArray(model: String)
var localizedDescription: String {
switch self {
case .invalidArray(model: let model):
return "\(model) has an invalid array"
default:
return "modelError"
}
}
}
и когда он передается как Error в функции обратного вызова, я хочу получить доступ к его пользовательскому локализованному описанию. Например:
func report(_ error: Error) {
print("Error report: \(error.localizedDescription)")
}
Но вызов report(ModelError.invalidArray(model: "test")) печатает:
"The operation couldn’t be completed. (ModelError error 0.)"
Такие вещи кажутся возможными с NSError, поскольку я могу переопределить там свойство localizedDescription. Но я не хочу использовать NSError, так как это не очень быстро, и многие библиотеки работают с Error.
ModelError(model: "test")не должно бытьModelError.invalidArray(model: "text")? - person rmaddy   schedule 11.11.2016ModelErrorсоответствуетCustomStringConvertible, аlocalizeDescriptionпереименовывается вdescription. А затем напечатайтеerrorвместоerror.localizedDescription. - person rmaddy   schedule 11.11.2016description. Я все еще изучаю Swift. - person rmaddy   schedule 11.11.2016