0

我有一个NSManagedObject子类,并希望在给定某个值的情况下获取其子对象之一,该值是子“位置”的属性。

我写了一个函数- (ChildObject*)childWithPosition:(int)position

在这里我检查那个孩子是否存在,如果存在则返回它。

如果它不存在,那么我想创建它。

所以...

我可以在 ParentObject 中执行此操作吗...

- (ChildObject*)childWithPosition:(int)position
{
    //check if child exists and return it if it does.
    // if it does not exist then...

    ChildObject *child = [[ChildObject alloc] initWithEntity:[NSEntityDescription entityForName:@"ChildObject" inManagedObjectContext:self.managedObjectContext] insertIntoManagedObjectContext:self.managedObjectContext];

    child.position = position;

    return child;
}

我的问题是,在父对象上使用属性 self.manageObjectContext 并使用此上下文插入新的子对象是否可以且安全?

4

2 回答 2

1

是的。但是为什么不使用managedObjectContext的属性NSManagedObject呢?

来自苹果文档:

managedObjectContext 返回注册接收者的托管对象上下文。

因此,例如:

NSManagedObjectContext* currentContext = parent.managedObjectContext;
于 2013-01-09T16:34:54.147 回答
0

是的。甚至必须是父母与孩子建立关系:)

=== 只有同一个 MOC 中的对象可以关联 IIRC

于 2013-01-09T16:31:34.797 回答