Sqlite NSPersistentStoreCoordinator没有持久存储-偶尔发生
我在我的项目中使用了核心数据,并在我的文档目录中使用了database.sqlite数据存储文件。我的应用程序允许将此sqlite文件导出为备份,以便稍后恢复。备份工作正常 我有一个从iOS6设备导出的备份文件。我想将此备份文件导入我的应用程序。我将该文件作为邮件附件,我使用open in将其与应用程序一起打开。在ios6或更早版本中工作正常。我多次尝试导入同一个文件,效果很好 我最近将数据库模式更改为一个新版本,在这个版本中,自动迁移能够很好地切换到新数据库。如果我的设备在iOS6中,我可以导入旧的数据库文件或现在导出的任何文件。我可以做很多次 现在,如果您将我的设备更改为iOS7,我可以多次导入最近导出的文件。但是如果我尝试导入先前导出的旧文件,我可以导入一次。该应用程序运行良好。然后我再次尝试导入它,现在从第二次尝试开始就失败了。给出标题中提到的错误。仅在iOS7中,并且仅在连续第2次尝试中 我正在使用scarybug文档解压缩到导入的文件。然后用导入的数据库文件替换现有的sqlite数据库文件。每次在iOS6中工作,第一次在iOS7中工作,但第二次尝试后在iOS7中失败 在执行导入之前,所有更改都会被提交/保存、托管对象上下文重置和持久存储协调器重置。新文件将取代旧文件,并且它已经工作了很长时间。该问题仅在第二次尝试使用从iOS6导出的相同文件时在iOS7中发现Sqlite NSPersistentStoreCoordinator没有持久存储-偶尔发生,sqlite,core-data,ios7,Sqlite,Core Data,Ios7,我在我的项目中使用了核心数据,并在我的文档目录中使用了database.sqlite数据存储文件。我的应用程序允许将此sqlite文件导出为备份,以便稍后恢复。备份工作正常 我有一个从iOS6设备导出的备份文件。我想将此备份文件导入我的应用程序。我将该文件作为邮件附件,我使用open in将其与应用程序一起打开。在ios6或更早版本中工作正常。我多次尝试导入同一个文件,效果很好 我最近将数据库模式更改为一个新版本,在这个版本中,自动迁移能够很好地切换到新数据库。如果我的设备在iOS6中,我可以导
如有任何帮助和疑问,将不胜感激。谢谢。添加了此词典-
NSMutableDictionary *pragmaOptions = [NSMutableDictionary dictionary];
[pragmaOptions setObject:@"NORMAL" forKey:@"locking_mode"];
[pragmaOptions setObject:@"DELETE" forKey:@"journal_mode"];
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption,
pragmaOptions, NSSQLitePragmasOption, nil];
至选项字典-
NSMutableDictionary *pragmaOptions = [NSMutableDictionary dictionary];
[pragmaOptions setObject:@"NORMAL" forKey:@"locking_mode"];
[pragmaOptions setObject:@"DELETE" forKey:@"journal_mode"];
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption,
pragmaOptions, NSSQLitePragmasOption, nil];
用于创建我的persistentStoreCoordinator。这就解决了我的问题