在Swift中工作,我想将枚举(Int类型)转换为NSNumber并返回。我可以从enum转换为Number但我无法转换回来。推荐的方法是什么?
enum UpdateMode: Int {
case Undefined = 0,
Daily,
Weekly,
Monthly
}
var mode = UpdateMode.Weekly
var num: NSNumber = mode.rawValue // this works
// error: 'Int32' is not convertible to 'UpdateMode'
var convertedMode = num.integerValue as UpdateMode
答案 0 :(得分:14)
有一个初始化器:
var convertedMode = UpdateMode(rawValue: num.integerValue)
请注意,它是可以使用的,因此convertedMode
是可选的 - 用于说明未映射到有效枚举案例的整数