核心数据NSTableView不匹配

时间:2012-11-25 23:24:31

标签: objective-c core-data nstableview osx-mountain-lion

我遇到了Core Data的问题。我有一个数组控制器设置,将数据链接到NSTableView。

我有一个每隔几秒运行一次代码的函数,并在其中显示文件列表

NSEntityDescription *entity = [NSEntityDescription entityForName:@"File"
                                          inManagedObjectContext:[self managedObjectContext]];

[request setEntity:entity];
NSError *error = nil;

NSArray *fetchedObjects =[_managedObjectContext executeFetchRequest:request
                                                              error:&error];

for (NSManagedObject *objectt in fetchedObjects) {
    NSLog(@"Object Name: %@", [objectt valueForKey:@"filename"]);
}
NSManagedObject *object = [fetchedObjects objectAtIndex:index];

NSLog(@"Filename: %@, Index: %ld", [object valueForKey:@"filename"], index);
NSString *imageName = [object valueForKey:@"imageName"];
NSImage *image = [object valueForKey:@"taggedImage"];

首次运行此代码时,列表与表列匹配。当它再次运行时,从阵列控制器获取的内容已更改,但不会更改为tableview。所以它不再同步了。

表和数组的相同索引处的值是不同的。

1 个答案:

答案 0 :(得分:0)

您是否手动检查了NSArrayController以查看它是否同步?这会将问题缩小到NSArrayController配置错误或者NSTableView配置错误。您的声明声称您正在查看NSArrayController但是当您使用“获取”一词时,我担心您会混淆对象。

此外,数据是处于已保存状态还是仍处于未保存状态?该问题还会影响NSArrayControllerNSTableView的显示。