我遇到了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。所以它不再同步了。
表和数组的相同索引处的值是不同的。
答案 0 :(得分:0)
您是否手动检查了NSArrayController
以查看它是否同步?这会将问题缩小到NSArrayController
配置错误或者NSTableView配置错误。您的声明声称您正在查看NSArrayController
但是当您使用“获取”一词时,我担心您会混淆对象。
此外,数据是处于已保存状态还是仍处于未保存状态?该问题还会影响NSArrayController
和NSTableView
的显示。