NSBundle 中的 CoreData sqlite 文件
Posted
技术标签:
【中文标题】NSBundle 中的 CoreData sqlite 文件【英文标题】:CoreData sqlite file in NSBundle 【发布时间】:2016-08-07 00:21:44 【问题描述】:我有一个 JSON 文件。大小约为 20MB。
项目 1。 因此,我创建了一个项目并将该 JSON 文件中的数据导入 Core Data。 Core Data 创建以下 sqlite 文件:整个数据列表.sqlite、整个数据列表.sqlite-shm 和整个数据列表.sqlite-wal。 将整个内容从 JSON 复制到核心数据并创建一次性文件需要 10 分钟。
现在在 Project2 中。 我复制了MainBundle中的所有三个文件。我必须创建.xcdatamodeld,就像我直接从Project1复制它一样,它没有找到.momd文件。
NSURL *storeURL = [[NSBundle mainBundle] URLForResource:@"entireDataList" withExtension:@"sqlite"];
store =[[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedModel]];
NSError *error;
[store addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error];
那么,NSBundle mainBundle 中的 storeURL 是一种可靠的方法吗,其中存储了整个数据列表.sqlite、整个数据列表.sqlite-shm 和整个数据列表.sqlite-wal 文件?
通常它们在文档目录中。
【问题讨论】:
所以目的是这是启动应用程序的种子数据,但它可以由用户编辑并保存编辑? 是的,就像没有用户输入一样。我也指出了这个。也就是说,我能读但不能写? 【参考方案1】:一般来说,您应该在首次启动时将包中的文件复制到文档文件夹中,然后从那里打开它们。然后,此方法将允许您编辑文件的内容并保存更新。
【讨论】:
以上是关于NSBundle 中的 CoreData sqlite 文件的主要内容,如果未能解决你的问题,请参考以下文章
[NSBundle allBundles] 中未出现单独的 CoreData 模型