Вы должны сохранить его как NSSet
и выполнить одно из следующих действий:
- Использовать код значения ключа
- Добавление ядра сгенерированных данных аксессоров
Для кодирования значения ключа вы получите доступ к своей коллекции следующим образом:
NSMutableSet *somethings = [object mutableSetValueForKey:@"somethings"];
[somethings addObject:newObject];
Для средств доступа, генерируемых основными данными, вы добавили бы в заголовок следующее:
@interface MyManagedObject (CoreDataGenerated)
- (void)addSomethingsObject:(MySomething *)object;
- (void)removeSomethingsObject:(MySomething *)object;
- (void)addSomethings:(NSSet *)somethings;
- (void)removeSomethings:(NSSet *)somethings;
@end
Вам не нужно реализовывать эти методы (Core Data позаботится об этом за вас), и вы можете легко вызывать их. Это мой предпочтительный способ обработки коллекций, потому что вы получаете лучшую проверку типов из компилятора.
Причина, по которой вы не должны менять его на NSMutableSet
, заключается в том, что существует высокая вероятность того, что вы вызовете сбои и / или что ваши изменения не будут сохранены в вашем хранилище базовых данных.
Вы также можете заглянуть в mogenerator , чтобы помочь вам с созданием всех ваших классов Какао.