在swift中将枚举转换为NSNumber

Wil*_*ill 10 enums swift

在Swift中工作,我想将枚举(Int类型)转换为NSNumber并返回.我可以从枚举转换为数字,但我无法转换回来.推荐的方法是什么?

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 
Run Code Online (Sandbox Code Playgroud)

Ant*_*nio 14

有一个初始化器:

var convertedMode = UpdateMode(rawValue: num.integerValue)
Run Code Online (Sandbox Code Playgroud)

请注意它是可用的,因此convertedMode是可选的 - 用于解释未映射到有效枚举情况的整数