Моя модель выглядит так:
В моем тестовом проекте есть два следующих метода:
- (void) addChildWithName:(NSString*)name toParent:(Item*)parent
{
static NSUInteger count = 1;
Item* childItem;
childItem = [NSEntityDescription insertNewObjectForEntityForName:@"Item" inManagedObjectContext:[self managedObjectContext]];
[childItem setName:[NSString stringWithFormat:@"%@ %lu", name, count]];
[childItem setParent:parent];
count++;
}
- (void)windowControllerDidLoadNib:(NSWindowController *)aController
{
[super windowControllerDidLoadNib:aController];
// Add any code here that needs to be executed once the windowController has loaded the document's window.
Item* rootItem;
rootItem = [NSEntityDescription insertNewObjectForEntityForName:@"Item" inManagedObjectContext:[self managedObjectContext]];
[rootItem setName:@"rootItem"];
[self addChildWithName:@"rootChild" toParent:rootItem];
[self addChildWithName:@"rootChild" toParent:rootItem];
[self addChildWithName:@"rootChild" toParent:rootItem];
[self addChildWithName:@"rootChild" toParent:rootItem];
[self addChildWithName:@"rootChild" toParent:rootItem];
}
В результате появится представление схемы, которое выглядит следующим образом:
Для моего объекта контроллера дерева в xib я установил для пути дочернего ключа значение «дочерний». Контекст управляемого объекта (moc) привязан к moc владельцев файлов. Столбец «Значение таблицы» моего представления схемы привязан к аранжированным объектам NSTreeController с путем к ключу модели «имя».
Как видите, я получаю повторяющиеся записи для дочерних элементов, когда они должны появляться только под корневым элементом.
Что я делаю неправильно?
Пример проекта находится по адресу ссылка на пример проекта.
Спасибо.