0

我正在创建一个应用程序,其中将预先存储大量信息。

最好使用 plist 存储数据,还是使用 SQLite 存储核心数据?在应用程序中预填充数据的最快方法是什么?

为了让您了解我将要使用的数据类型,您可以考虑存储电影信息。我实际上不会存储电影,但我存储的数据在结构上可能相似:一部电影可以有多个演员,一个演员可以在多部电影中播放。基本上,我的数据中存在多对多的关系。

4

1 回答 1

0

如果您希望能够从一个完整的数据库开始,最快的方法是创建一个已包含所有数据的持久存储文件并将其添加到您的应用程序包中。当应用程序第一次启动时,您可以在设置NSPersistentStoreCoordinator并开始使用它之前将文件从捆绑包复制到文档目录:

NSFileManager *fileManager = [NSFileManager defaultManager];
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"database.sqlite"];
if(![fileManager fileExistsAtPath:[storeURL path]]) {
  NSURL *template = [NSURL fileURLWithPath:[NSBundle pathForResource:@"start-database" ofType:@"sqlite" inDirectory:nil]];
  [fileManager copyItemAtURL: toURL:storeUrl error:nil];
}

之后继续正常设置您的NSPersistentStoreCoordinator.

您可以通过自己运行应用程序、添加所有项目、保存上下文然后退出应用程序来预填充数据库。之后复制创建的 sqlite 数据库文件并添加到应用程序的资源中。

于 2013-06-04T07:05:58.087 回答