typedef как тип данных Core - PullRequest
       14

typedef как тип данных Core

1 голос
/ 19 сентября 2009

Я строю модель Core Data, и один из моих классов должен иметь переменную, которую лучше всего реализовать как typedef. Сейчас я реализую ее как строковую переменную, которая принимает три возможных значения, но, конечно, это не надежно.

Есть ли способ реализовать это в модели Core Data?

Ответы [ 2 ]

1 голос
/ 19 сентября 2009

У вас может быть целочисленный атрибут и временный атрибут неопределенного типа, который инициализируется в зависимости от значения целочисленного атрибута?

1 голос
/ 19 сентября 2009

Недавно я рассмотрел использование enum typedef и сохранил его как NSNumber в Core Data. Я реализовал свой собственный подкласс NSManagedObject и создал свойство для моего типа. В средствах доступа, которые я затем преобразовал в и из NSNumber:

- (MyTypedef)type {
    NSNumber *value = [self primitiveValueForKey:@"type"];
    return [value integerValue];
}

- (void)setType:(MyTypedef)aType {
    NSNumber *value = [NSNumber numberWithInteger:aType];
    [self setPrimitiveValue:value forKey:@"type"];
}

В конце концов, я не пошел с этим решением, но тогда оно работало нормально для меня (на iPhone). Не уверен, что приведенный выше код абсолютно правильный - я просто набрал его в этом окне браузера.

Вероятно, потребуется больше работы, если вы хотите использовать KVO и т. Д., И вы можете захотеть выполнить некоторую проверку ошибок в методе доступа, чтобы проверить, действительно ли то, что вы возвращаете в NSNumber, действительно в перечислении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...