Добавить отношения к несохраненному NSManagedObject? - PullRequest
1 голос
/ 03 февраля 2012
NSManagedObject *parent = [NSEntityDescription insertNewObjectForEntityForName:@"Parent" inManagedObjectContext:self.managedObjectContext];
NSManagedObject *child = [NSEntityDescription insertNewObjectForEntityForName:@"Child" inManagedObjectContext:self.managedObjectContext];
[child setValue:parent forKey:@"parent"];

Это не работает для меня, но я могу сделать что-то вроде этого:

[child setValue:"John" forKey:@"name"];

Спасибо за помощь!

1 Ответ

3 голосов
/ 03 февраля 2012

Если отношение было определено в ManagedObjectModel, вы можете использовать

[parent setValue:child forKey:@"childObject"];

В этом примере кода предполагается, что у вашего Entity Parent установлен атрибут отношения, называемый childObject.

enter image description here

Для использования.Accessor для свойства NSManagedObject вам нужно будет создать его подкласс.Выберите вашу сущность и нажмите «Создать» NSManagedObject Подкласс из меню редактора

EditorMenu

Затем вместо создания ваших объектов как NSManagedObjects создайте их как родительские и дочерние классы

#import "Parent.h"
#import "Child" 
Parent *parent = [NSEntityDescription insertNewObjectForEntityForName:@"Parent" inManagedObjectContext:self.managedObjectContext];
Child *child = [NSEntityDescription insertNewObjectForEntityForName:@"Child" inManagedObjectContext:self.managedObjectContext];
parent.childObj = child;
...