Подтвердить что ты не робот

Преобразование перечисления в NSNumber в swift

Работа в 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 
4b9b3361

Ответ 1

Здесь есть инициализатор:

var convertedMode = UpdateMode(rawValue: num.integerValue)

Обратите внимание, что это невозможно, поэтому convertedMode является необязательным - для учета целого числа, не отображаемого в действительный регистр перечисления