我不确定我是否完全理解 Core Data 在 iOS 上的工作原理。 我有一个大的 JSON 文件,我已将其解析并导入到核心数据中。这会生成一个 sqlite 文件。我需要将此文件包含在应用程序中,但每次我从设备中删除该应用程序时,我都必须再次运行 JSON 解析脚本以在设备上创建一个新的 sqlite 文件。我希望能够从应用程序包中排除 JSON 文件,并且不想在首次使用时运行解析脚本。
我该怎么做呢?我做错了什么吗?
最佳答案
您需要创建 sqlite 文件(如果愿意,可以使用您的应用程序),然后将其复制到您的项目中并使用该应用程序进行部署。您还需要添加一些代码,以便在您的应用程序首次运行时将文件移动到您的文档目录中。如果文件不存在然后复制脚本,这可能很简单。
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *DB = [[paths lastObject] stringByAppendingPathComponent:@"myDB.sqlite"];
if (![fileManager fileExistsAtPath:DB]) {
NSString *shippedDB = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"myDB.sqlite"];
[fileManager copyItemAtPath:shippedDB toPath:DB error:&error];
}
我用这个方法输出预建的sqlite文件,虽然我在CoreData管理sqlite文件的时候没用过。
关于iphone - 在应用程序包中包含核心数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4079161/