我需要将一些数据存储在 CoreData 实体中。是否可以在CoreData中预存数据,在分发的时候会带走。或者,如果我需要在加载时运行某些内容以检查实体中是否有任何内容,如果没有,则添加这些行。(这些数据不是用户可以更改的。它们是预设的数据点,只有在我发布新版本时才会更改)。
我不确定如何实现这一目标。任何意见,将不胜感激。
谢谢。
一个解决方案是创建一个 .plist 文件。而且,在第一次启动时(有不同的方法可以做到这一点:使用 NSUserDefaults,或检查 CoreData 数据库中的内容......),将该 .plist 文件中的数据设置为您的 CoreData 数据库......
如果它们是仅随新版本更改的预设,则您需要检测先前版本的现有数据库并使用迁移技术。当您在启动时打开数据库时,您的代码将检查返回的错误代码,如果不是当前版本,则重新制作数据库,更新您的预设字段,然后重新制作用户数据(假设有一些? )
至于预设本身的存储,plist 或硬编码,尽管 plist 是首选。
和一个很棒的教程:
http://www.raywenderlich.com/27657/how-to-perform-a-lightweight-core-data-migration