0

次の単純な関係があります。

Parent has many Children (ordered)
Child belongs to Parent.

そして、私は奇妙な振る舞いをします:

// In of my classes, I keep a reference to a child.
@interface Foo ()
{
    Child *_child;
}

// Somewhere in my code I create a child and a parent and associate them.
Child *c = (Child *)[NSEntityDescription insertNewObjectForEntityForName:@"Child" inManagedObjectContext:moc];
Parent *p = (Parent *)[NSEntityDescription insertNewObjectForEntityForName:@"Parent" inManagedObjectContext:moc];
[p addChildrenObject:c];
c.parent = p;
_child = c;

// Then somewhere else I do:
Parent *parent = _child.parent; // It works fine
NSOrderedSet *children = parent.children; // Same, I do see the children
int idx = [children indexOfObject:_child]; // idx is NSNotFound!!

私が見ることができるのはchildren、通常の ID を持つ子が含まれていることですが、私の _child 参照にはまだ一時的な ID があります。

どこでも同じコンテキストを使用しています。

私は自分の参照で何か間違ったことをしていると思いますが、それが何であるかわかりませんか?

4

1 に答える 1