1
一個簡單的解決方案,發現由於@Airspeed速度,添加了,因爲這是從JSON解析有點扭曲。允許初始化採取AnyObject?
並默認爲Unknown
(或Invalid
):
init(value: AnyObject?) {
if let value = value as? Int
,let result = Result(rawValue: value) {
self = result
} else {
self = .Unknown
}
}
//
原始
我實現了一個枚舉了Unknown
情況:
enum Result: Int {
case Success
case Failure
case Foo
case Bar
case FooBar
case FooFoo
...
case Unknown = -1
}
我想創建另一個初始化程序,需要ñInt
並返回Unknown
的情況下,不被認可的枚舉:
init(value: Int) {
self.init(rawValue: value)
if self == nil { // Complication Error
self = .Unknown
}
}
我現在的解決方案是一個工廠方法,但是一個初始化會更清潔:
謝謝!我很尷尬,我不認爲在初始化器中使用類型名稱。 – Yariv