У меня есть класс ошибок:
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