【发布时间】:2015-04-17 15:07:09
【问题描述】:
我正在尝试在 Swift 中创建一个简单的错误处理结构。我想做的是返回一个包含“成功”代码或“错误”代码的类型。但是为了让它有点棘手,在错误的情况下,我还想得到一条消息和一个诊断字符串。
我想出了这个,它编译得很好,就返回成功/错误而言效果很好:
enum PasswordValidationResult {
case Success
case PasswordError(message: String, diagnostic: String)
func isValid() -> Bool {
switch self {
case .Success:
return true
case .PasswordError:
return false
}
}
}
我可以返回所需的值:
return PasswordValidationResult.PasswordError(message: "You can't do that", diagnostic: "XYZ")
当我尝试引用返回值时,问题就来了。
显然,我可以使用 isValid() 函数来测试成功条件,但我找不到任何引用消息和诊断字符串的语法。
例如,试试这个:
myError = someFunction()
if myError == PasswordValidationResult.Error {
// None of this will compile, at all...
println(myError.message)
}
【问题讨论】:
标签: swift syntax error-handling enums