преобразовать id в enum с помощью objective-c

Я пытаюсь реализовать простой метод, однако я все еще новичок в объекте-c.

У меня есть этот простой метод, который пытается преобразовать идентификатор в конкретное значение в enum, если совпадает.

Это перечисление

typedef enum {
   DXTypeUnknown = 0,
   DXDatasource = 1,
   DXGroup = 2
} DXPropertyType;

И это соответствующий метод:

-(DXPropertyType)typeFromObject:(id)_type {
    int _t = [_type intValue];

    switch (_t) {
        case DXDatasource:
            return [NSNumber numberWithInt:DXDatasource];
        case DXGroup:
            return [NSNumber numberWithInt:DXGroup];


        default:
            return [NSNumber numberWithInt:DXTypeUnknown];
    } 
}

Самая первая проверка, которую я хотел бы реализовать, это то, можно ли преобразовать идентификатор в int, а затем посмотреть, попадает ли он в два соответствующие группы категорий или источник данных, или возвращают значение по умолчанию, если нет. Не могли бы вы сказать мне, является ли реализованный мной переключатель / корпус правильным решением или нет? Я бы также хотел, чтобы этот метод не приводил к сбою приложения, поэтому что можно посоветовать проверить, имея в виду, что в любом случае должно быть возвращено значение по умолчанию.

спасибо

[РЕДАКТИРОВАТЬ] Я забыл сказать, что это значение будет храниться в поле NSManagedObject, которое по ограничению CoreData может быть NSNumber, так что, вероятно, есть лучшее решение вместо перечисления.

5
задан Leonardo 8 July 2011 в 13:19
поделиться