Вы не должен любой код, чтобы установить связь между сущностями событиями и приятелем членов :)
Вы можете открыть модель данных ядра, выберите объект Event, удерживая контроль и перетащите курсор мыши на членах объекта:) отношения будут установлены сразу :)
Теперь выберите отношения изменить его на многие ко многим из обоих Event Члену (многие-ко-многим-отношения) и член Событие (обратная связь) :)
Теперь назовите эти отношения как для объекта Event, так и для объекта-члена соответствующим образом :)
Как многие ко многим в случае быть названы involves_Members и же отношения в сущности-членов будет называться involvedin_Events :)
Теперь, когда вы генерировать классы модели для обеих организаций вы найдете
Events.h
имеет свойство с именем involves_Members, которые будут типа NSSet
и аналогично
`Members.h`
имеет свойство с именем involvedin_Events, которые будут типа NSSet
а :)
Предположим теперь, если вы хотите добавить элемент к событиям все, что вам нужно сделать, будет
создать объект как члены
[context performBlock:^{
Member *member = (Member *)[NSEntityDescription insertNewObjectForEntityForName:@"Member" inManagedObjectContext:context];
[member setValue:@"yourValue" forKey:@"yourkey"];
//after populating it with appropriate value set the relationship with event :)
//get the event to which you want to set the relationship with member using NSFetchRequest :)
//assuming you have event object with you
NSMutableSet *involvedMembers = [event mutableSetValueForKey:@"involves_Members"];
[involvedMembers addObject:member];
[event setValue:involvedMembers forKey:@"involves_Members"];
//thats it you are done now
//save the context now :)
NSError *error;
[context save:&error];
}];
и когда вы хотите получить доступ ко всем членам, участвующих в и событие все, что вам нужно сделать, это получить объект события с помощью NSFecthRequest :) и когда у вас есть объект события, вы можете получить доступ ко всем своим членам с помощью ,
NSArray *membersArray = [event.involves_Members allObjects];
ИЛИ
NSArray *membersArray = [event valueForKey:@"involves_Members"];
Вот так :) То же самое применимо для членов enity а :)
TIP
Вы не хотите, чтобы операцию удаления беспорядок с вашими основными данными :) Итак, выберите оба отношения: involves_Members
и involvedin_Events
a d установить правило удаления для аннулирует
Надежда Я сделал мой пункт ясно :) Happy дружище кодирования :)
Спасибо за ваш ясный ответ. У вас есть быстрая версия? – kupilot
@kupilot: Извините, приятель не имеет imac со мной, теперь попробует предоставить вам код завтра :) Но конвертировать это в swift не должно быть проблемой :) Вот ссылка, я думаю, вы могли бы ее увидеть :) Если нет, пожалуйста, посмотрите на него :) https://www.raywenderlich.com/14742/core-data-on-ios-5-tutorial-how-to-work-with-relations-and-predicates Все, что я упоминал, очень четко объяснено и его в быстрой :) Надеюсь, это поможет вам :) –