2014-12-28 16 views
10

Pracując w Swift, chciałbym przekonwertować wyliczenie (typu Int) na NSNumber iz powrotem. Mogę konwertować z enum na Number, ale nie mogę się z powrotem przekonwertować. Jakie jest zalecane podejście?Konwertuj wyliczanie na NSNumber w swift

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 

Odpowiedz

13

Jest inicjator za to:

var convertedMode = UpdateMode(rawValue: num.integerValue) 

uwaga, że ​​to failable, więc convertedMode jest opcjonalny - że w celu uwzględnienia liczby całkowitej nie mapowane do ważnej sprawy enum