Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 用数据预填充应用程序的最快方法是什么?_Ios_Datastore - Fatal编程技术网

Ios 用数据预填充应用程序的最快方法是什么?

Ios 用数据预填充应用程序的最快方法是什么?,ios,datastore,Ios,Datastore,我正在创建一个应用程序,其中将预存储大量信息 最好使用plist存储数据,还是使用SQLite存储核心数据?在应用程序中预填充数据的最快方法是什么 为了让您了解我将要使用的数据类型,您可以考虑存储电影信息。我实际上不会存储电影,但我存储的数据在结构上可能类似:一部电影可以有多个演员,一个演员可以在多部电影中扮演。基本上,我的数据中存在多对多关系。如果您想从一个完整的数据库开始,最快的方法是创建一个已包含所有数据的持久存储文件,并将其添加到您的应用程序包中。当应用程序首次启动时,您可以将文件从捆绑

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

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


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

如果您想从一个完整的数据库开始,最快的方法是创建一个已包含所有数据的持久存储文件,并将其添加到您的应用程序包中。当应用程序首次启动时,您可以将文件从捆绑包复制到文档目录,然后再设置
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数据库文件并添加到应用程序的资源中。

如果实体之间存在关系,则最好使用核心数据。对于我来说,这是一个很好的教程,我还考虑使用Parse来存储数据,这将使我能够根据需要更新数据。我唯一担心的是,它将是一个免费的应用程序,如果它变得流行,我不想最大限度地使用我的解析帐户。我是否应该关注这一点,并且这是一个好的选择(对我来说似乎是)。:-)我不太确定哪条路最快。我一直使用核心数据和(核心数据的包装器),它提供了一些非常简单的从json/plist等导入数据的方法。如果你的应用程序有静态数据,你可能可以使用预加载。如果您看到将要进行更改,请创建一个数据管理器或其他东西来检查版本并更新预加载的数据。我的问题的措辞与最初提出的问题不同,然后被其他成员关闭,认为这不是一个好问题。这是怎么回事?如果你能证明,我可以投票重新开放它?