开发者

Problem in working with core data

开发者 https://www.devze.com 2023-03-05 21:00 出处:网络
Am using core data framework in my cocoa application,I have created couple of entities and created reference using NSEntityDescription. When i run the application am getting an error saying that \"The

Am using core data framework in my cocoa application,I have created couple of entities and created reference using NSEntityDescription. When i run the application am getting an error saying that "The managed object model version used to open the p开发者_StackOverflow中文版ersistent store is incompatible with the one that was used to create the persistent store."


You need to delete the application from your device / simulator, then build and run again.

This will happen each time you change your model, because the old data store will remain in the apps documents folder, while the classes accessing it have been altered.

In a later stage of development, you will propably want to introduce store migration, sou your testers and users won't have to delete their data each time a new version is released. If your model remains static though, you don't need to migrate the data during future updates.

You might want to take a look at the Core Data Migration Programming Guide for further information.


The answer is a bit tricky but this always works for me. This is for a clean installation of a new compatible .sqlite file, not a migration!

launch simulator, delete the app and the data (the popup after you delete the app).

quit simulator

open X-Code, after making any edits to your data model

delete the {*appname*}.sqlite file (or back it up, remove it from project folder, and delete reference)

clean the app (Product > Clean)

Run the app in a simulator (for this tutorial I will assume 4.2)

While the simulator is running, in a Finder window, navigate to: {*home*} > Library > Application Support > iPhone Simulator > 4.2 > Applications > {*random identifier*} > Documents > {*appname*}.sqlite

Copy this file to another location

Stop running your app in X-Code

Drag and drop the {appname}.sqlite file into the files list in X-Code.

In the dialog that pops up, make sure the copy to folder checkbox, is checked.

Product > Clean

Then run the app in the simulator again

Now you should have a working sqlite file!

Cheers, Robert


You must delete the persistent store file from either:

  • ~/Library/$AppName
  • ~/Library/Application Support/$AppName

(Depending on your version of Xcode.)

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号