Вы должны держать его в качестве NSSet
и выполните одно из следующих действий:
- Использование key value coding
- Добавить ядро data generated accessors
Для кодировки ключа значение, вы будете получить доступ к коллекции например:
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
Вам не нужно реализовать эти методы (основные данные будут заботиться о нем для вас), и вы можете называть их легко. Это мой предпочтительный способ обработки коллекций, потому что вы получаете лучшую проверку типов от компилятора.
Причина, по которой вы не должны менять ее на NSMutableSet
, заключается в том, что есть вероятность, что вы столкнетесь с сбоями и/или что ваши изменения не будут сохранены в вашем хранилище основных данных.
Возможно, вы также захотите изучить mogenerator, чтобы помочь вам создать все ваши уроки какао.
вызовет проблему, если я добавлю уже существующий объект в отношение – Johnykutty
@ Наборы Johnykutty гарантируют, что дубликатов нет. Это не должно иметь никакого эффекта. – wbyoung