在Swift中工作,我想将一个枚举(类型为Int)转换为NSNumber并返回。我可以将枚举转换为Number,但不能转换回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

最佳答案

有一个初始化程序:

var convertedMode = UpdateMode(rawValue: num.integerValue)

请注意,它是有故障的,因此convertedMode是可选的-用于说明未映射到有效枚举大小写的整数

09-16 07:12