我使用Core Data模板创建了一个小型测试Mac应用程序(在Lion 10.7和Xcode 4上)。我在这个站点http://www.swampfoetus.net/chapter-7-fail/上使用了这个例子,用表视图,NSArrayController,文本框和Add按钮连接所有Cocoa Bindings。 NSArrayController链接到App Delegate的managedObjectContext。
当我启动应用程序时,一切似乎都正常工作......我可以输入文本并按添加,然后将其保存在tableview中。我保存了几行,然后在文件菜单中按下了Save(链接到saveAction IBAction)并退出了应用程序。我可以看到数据保存在xml数据文件中(我将其重命名为.xml ... PSC的类型为NSXMLStoreType)。
问题在于,当我再次启动应用程序时,它会启动时没有上一次运行中保存在Core Data文件中的数据。
每次都会发生这种情况......我可以添加数据并且它会不断附加到数据文件中,但是在启动时它似乎永远不会读取此数据文件。
任何想法在这里可能是错的?我根本没有弄乱App Delegate生成的代码,只设置了似乎工作正常的绑定。我可以检查什么以确保它的设置正确?
答案 0 :(得分:0)
如果数据显示在持久性存储中,则唯一的解释是绑定问题,其中UI由于某种原因不显示先前的数据。很难说为什么会发生这种情况,但我的猜测是一个fetch谓词或一些其他绑定限定符,导致控制器忽略旧对象,以便不显示它们。
我不能肯定地说,因为我无法访问这本书。
这是使用绑定的缺点之一。当他们工作时,他们很棒但是当他们不工作时,他们就是@#%!调试。