2014-10-13 3 views
0

У меня есть информация, хранящаяся в файле plist, который я втягиваю в словарь.Установить перечисление из NSDictionary Swift

У меня есть класс с некоторыми перечислений созданы следующим образом:

enum componentPostion { 
    case upperLeft, UpperRight, lowerLeft, lowerRight 
} 

Я объявлен вар как типа componentPostion

var isPosition: componentPostion 

Могу ли я тогда установить перечисление от значения в словарь без необходимости писать функцию с помощью оператора switch и т. д. Я пробовал это без везения

isPosition = componentInfo["Type"] as componentPostion 
+0

Как этот словарь объявлен? – Kirsteins

+0

IM, создающий словарь из словаря, хранящегося в файле plist, следующим образом: let dict = NSDictionary (contentsOfFile: NSBundle.mainBundle(). PathForResource ("Cards", ofType: "plist")!) componentInfo = dict.valueForKeyPath (имя_компьютера) как NSDictionary в файле plist это строка –

ответ

1

Вы можете использовать сырые значения унаследовав перечисления от типа вы хотите держать, в вашем случае, я полагаю, что это строка:

enum componentPostion : String{ 
    case upperLeft = "upperLeft" 
    case upperRight = "upperRight" 
    case lowerLeft = "lowerLeft" 
    case lowerRight = "lowerRight" 
} 

Затем вы можете использовать fromRaw() получить случай перечислимую:

let isPosition = componentPostion.fromRaw("upperLeft") 

и toRaw() получить его строковое представление

isPosition.toRaw() 

Обратите внимание, что fromRaw() возвращает необязательный, в случае, если параметр не мат сп любое необработанное значение, определенное для перечисления

Рекомендуемая литература: Raw Values

Смежные вопросы