Хранение иерархических данных в Core Data за 1 проход? - PullRequest
2 голосов
/ 13 января 2012

При загрузке данных в Core Data мои дочерние объекты не получают набор родительских идентификаторов.Все это генерируется, когда я прохожу XML-документ с использованием TBXML.(код сильно перефразирован для краткости)

a = NSEntityDescription insertNewObjectForEntityForName:@"A"
set various a attributes
if a.Type isEqualToString:@"TypeA"
    b_set = NSMutableSet new
    for each child element of a
        b = NSEntityDescription insertNewObjectForEntityForName:@"B"
        set various b attributes
        b.a = a
        b_set addObject:b
    next
    a.bs = b_set
end
blah blah blah

Когда все сказано и сделано, все a и b и все их атрибуты правильно сохранены в SQLite, за исключением того, что все b имеют нуль для своего aатрибут parent).

Нужно ли переделывать это, чтобы написать a перед созданием b, чтобы они имели реальный objectID для ссылки?

1 Ответ

0 голосов
/ 14 января 2012

Обратные отношения обновляются как часть -processPendingChanges.Это будет вызвано как часть -save:.Если вам нужно, вы можете позвонить напрямую.CoreData не будет обновлять обратные отношения сразу, поскольку это дорого.

...