我一直在我的项目中使用核心数据,并在我的文档目录中使用 database.sqlite 数据存储文件。我的应用程序允许将此 sqlite 文件导出为备份以供以后恢复。备份工作正常。
我有一个从 iOS6 设备导出的备份文件。我想将此备份文件导入我的应用程序。我将文件作为邮件附件,我使用 open-in 使用应用程序打开它。在 ios6 或更早版本中运行良好。我曾多次尝试导入同一个文件,并且效果很好。
我最近将我的数据库架构更改为一个新版本,其中自动迁移能够很好地切换到新数据库。如果我的设备在 iOS6 中,我可以导入旧的数据库文件或现在导出的任何文件。我可以做任何次数。
现在,如果您将我的设备更改为 iOS7,我可以多次导入最近导出的文件。但是如果我尝试导入之前导出的旧文件,我可以导入一次。该应用程序运行良好。然后我尝试再次导入它,现在它从第二次尝试开始失败。给出标题中提到的错误。仅在 iOS7 中且仅来自连续第二次尝试。
我正在使用可怕的错误文档解压缩到导入的文件。然后我将现有的 sqlite 数据库文件替换为导入的数据库文件。每次都在 iOS6 中工作,第一次在 iOS7 中工作,但在 iOS7 中第二次尝试失败。
在执行导入之前,所有更改都已提交/保存,托管对象上下文已重置,持久存储协调器已重置。新文件取代了旧文件,并且已经工作了很长时间。该问题仅在第二次尝试使用从 iOS6 导出的相同文件时在 iOS7 中发现
任何帮助和查询将不胜感激。谢谢。