我正在尝试设置Core Data,NSArraycountroller和NSTableView之间的绑定。获取NSArrayController的NSManagedObjectContext。我在IB中拖了一个NSObject,并在appDelegate之后命名它,然后在appDelegate和arrayController之间设置objectContext的绑定。
然而,每当我试图运行该应用程序时。我收到此错误消息:
错误消息:
The managed object model version used to open the persistent store is incompatible with
the one that was used to create the persistent store
然后是另一条错误消息:
Failed to initialize store.
我google了,大多数人可以通过清理他们的项目或删除〜/ Library / Application Support / AppName / 。下的文件来解决这个问题。但我没有那些运气。
另一件事是,我非常想要一些关于这个主题的好教程(CoreData + ArrayController + TableView)。有人可以对此有所了解吗?我仔细阅读了“Mac OSX第4版可可编程”一书的第11章,但没有发现它真的有用。
感谢。
答案 0 :(得分:1)
终于解决了这个问题。我认为这与Reskit有关。当与CoreData捆绑时,Reskit有自己的managedObjectContext。这就是为什么它一直告诉我两个对象模型是不兼容的。 NSArrayController应绑定到RKManager中的managedObjectContext而不是appDelegate中的managedObjectContext。
所以我把它放在视图控制器的init方法中:
RKObjectManager *objectManager = [RKObjectManager sharedManager];
currentObjectContext = objectManager.objectStore.managedObjectContextForCurrentThread;
将NSArrayController对象中的managedObjectContext指向currentObjectContext。
答案 1 :(得分:0)
错误与您的托管对象模型有关;它与您的绑定或表视图无关。如果它在您运行应用程序时发生(与您尝试打开文档时相比),则可能是在恢复自动保存文档期间。
尝试删除与〜/ Library / Autosave Information 相关的任何内容,并查看是否可以解决初始问题。