gpt4 book ai didi

cocoa - 使用 CoreData 为 NSOutlineView 设置 NSTreeCcontroller

转载 作者:行者123 更新时间:2023-12-03 16:37:46 24 4
gpt4 key购买 nike

我的模型如下所示:

model

在我的测试项目中,我有以下两种方法:

- (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];
}

这会产生如下所示的大纲 View :

result

对于 xib 中的树 Controller 对象,我已将“子键路径”设置为“children”。托管对象上下文 (moc) 绑定(bind)到文件所有者 moc。我的大纲 View 的表列的值绑定(bind)到 NSTreeController 的arrangedObjects,模型键路径为“name”。

如您所见,我收到了子项目的重复条目,而这些条目只应出现在根项目下。

我做错了什么?

示例项目位于sample project link .

谢谢。

最佳答案

您的数组 Controller 需要一个“Fetch Predicate”,以便仅在使用 parent == nilparent 属性为零时选择 Item 对象。

关于cocoa - 使用 CoreData 为 NSOutlineView 设置 NSTreeCcontroller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14677790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com