我有一個錯誤類是:更改錯誤localizedDescription
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
過去了,我想訪問其自定義localizedDescription。例如:
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(型號: 「測試」)'是'ModelError.invalidArray(型號: 「文本」)'? – rmaddy
是的,壞的複製粘貼。謝謝! – Guig
如果'ModelError'符合'CustomStringConvertible'並且'localizeDescription'被重命名爲'description',我可以使你的代碼工作。然後打印'error'而不是'error.localizedDescription'。 – rmaddy