在swift中将枚举转换为NSNumber

在swift中将枚举转换为NSNumber,swift,enums,Swift,Enums,在Swift中,我想将一个枚举(Int类型)转换为NSNumber并返回。我可以从枚举转换为数字,但无法转换回。推荐的方法是什么 enum UpdateMode: Int { case Undefined = 0, Daily, Weekly, Monthly } var mode = UpdateMode.Weekly var num: NSNumber = mode.rawValue // this works // erro

在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 

有一个初始值设定项:

var convertedMode = UpdateMode(rawValue: num.integerValue)
请注意,它是可失败的,因此
convertedMode
是可选的-用于说明未映射到有效枚举大小写的整数