我有一个奇怪的问题,我有一个 NSArrayController 绑定到 managedObjectContext 并使用数组控制器来填充 NSTableView。我可以创建一个对象并插入它,它将添加新对象并更新绑定到控制器的列之一,而不是其他列!我知道正在设置字段并且绑定工作正常(也许),因为如果我关闭应用程序并重新启动应用程序,一切都会正确填充。
我不确定我错过了什么!如何调试绑定?从我在这里找到的内容: https ://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdTroubleshooting.html#//apple_ref/doc/uid/TP40002320-SW6 基本上只是说可能是您的控制器或关键值编码合规性。
这是创建实体的代码:
NSManagedObjectContext* context = [[BugManager shared] managedObjectContext];
NSError* error;
Bug* newBug = [NSEntityDescription insertNewObjectForEntityForName:@"Bug" inManagedObjectContext:context];
[newBug setValuesForKeysWithDictionary:data];
[context save:&error];
我已验证所有字段均已正确设置并已保存。我还尝试明确设置值,以查看它是否是关键值观察问题,但无济于事。
这是正确更新的列:
这是一个没有正确更新的:
和阵列控制器:
我可以重新排列表格列,它仍然只更新一个,即目标字段(它之前更新的那个)。我只想让表格正确更新所有列,但这比预期的要困难!