2010-09-18 30 views
5

我有一个应用程序使用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有没有类似的方法?

回答

6

这正是您对Core Data所做的。使用您的应用程序以您想要的方式创建数据,然后从设备下载数据。您将在Documents目录(这是默认位置)中找到SQLite文件。将SQLite文件作为资源添加到您的项目中。它会随着您的应用程序一起被复制。

然后,您只需编写一些代码以确定文件在启动时是否已存在于Documents目录中。如果没有,您可以将文件从您的应用程序包中复制到Documents目录,Core Data将打开它。您只需确保在设置NSPersistentStoreCoordinator之前执行此操作。

+0

非常感谢,它为我工作! – Arts 2010-09-22 17:53:12

相关问题