如何使用CoreData进行初始数据配置设置?
问题描述:
我有一个应用程序使用CoreData作为数据存储机制,应用程序需要一些初始数据进行配置。是否有任何建议/您为了设置初始数据而做了什么/如何做?如何使用CoreData进行初始数据配置设置?
目前,我在下面的方法做(当应用程序启动的第一时间):
SomeEntity *newEntity=[NSEntityDescription insertNewObjectForEntityForName:@"SomeEntity" inManagedObjectContext:context];
[newEntity setCode:@"a-code"];
[newEntity setName:@"a-name"];
...
[context save:nil];
我不喜欢这种方法,原因有二:
1)它是如此的乏味和错误易发,如果你需要超过10个实体实例为一个以上的实体类型
2),可能使用SQLite占用一些时间初始启动
在以前的应用程序我刚刚将我最初的SQLite数据库到应用程序,如果需要修改任何数据,则移动数据库se到Documents目录。 CoreData有没有类似的方法?
答
这正是您对Core Data所做的。使用您的应用程序以您想要的方式创建数据,然后从设备下载数据。您将在Documents目录(这是默认位置)中找到SQLite文件。将SQLite文件作为资源添加到您的项目中。它会随着您的应用程序一起被复制。
然后,您只需编写一些代码以确定文件在启动时是否已存在于Documents目录中。如果没有,您可以将文件从您的应用程序包中复制到Documents目录,Core Data将打开它。您只需确保在设置NSPersistentStoreCoordinator
之前执行此操作。
非常感谢,它为我工作! – Arts 2010-09-22 17:53:12