Ios 将现有核心数据映像存储从可转换更改为二进制数据/允许外部存储

Ios 将现有核心数据映像存储从可转换更改为二进制数据/允许外部存储,ios,objective-c,core-data,migration,binary-data,Ios,Objective C,Core Data,Migration,Binary Data,我即将承担一个艰巨的项目,将我的live(即已经在app store上使用了很多年)应用程序从可转换到二进制数据存储,以存储核心数据中的图像 我有很多用户,他们拥有存储大量图像的大型数据库。这确实减慢了备份/恢复过程,并可能导致其他一些幕后问题。几年前我用这种方式建立它的时候,我不知道还有什么更好的 我如何进行这一过程,以免丢失客户的一张照片?如果只有我和我自己的数据,我相信我可以让事情运转起来。但我想确保一步一步地做好这件事,我知道这个社区在这方面会有很大的帮助。我真的不知道从哪里开始现有的图

我即将承担一个艰巨的项目,将我的live(即已经在app store上使用了很多年)应用程序从可转换到二进制数据存储,以存储核心数据中的图像

我有很多用户,他们拥有存储大量图像的大型数据库。这确实减慢了备份/恢复过程,并可能导致其他一些幕后问题。几年前我用这种方式建立它的时候,我不知道还有什么更好的

我如何进行这一过程,以免丢失客户的一张照片?如果只有我和我自己的数据,我相信我可以让事情运转起来。但我想确保一步一步地做好这件事,我知道这个社区在这方面会有很大的帮助。我真的不知道从哪里开始现有的图像

基本上,我在寻找要采取的步骤,以免错过一个节拍。2)在此过程中的一般建议、警告等。当这个版本上线时,我真的需要一个干净的迁移


提前感谢所有能够提供帮助的人。

可转换数据类型实际上只是一种二进制数据,包含一些额外的元数据。您是否在现有存储上测试过简单的轻量级迁移?我怀疑迁移会起作用,并将现有数据留在存储中

如果您希望将现有的二进制数据从SQLite文件中移出,那么您将看到更复杂的内容

大量的迁移将完成您想要的功能,但是如果商店很大,则可能需要很长时间,并且可能无法提供足够的反馈以获得良好的用户体验。我个人从未在IOS上使用过大量迁移,但它会实现您的目标


导出/导入也将起作用。当轻量级迁移不起作用时,我通常建议导出/导入。它涉及到中等数量的代码,但最终您拥有代码,了解整个过程,并可以根据您的确切需要对其进行调整

可转换的数据类型实际上只是一些附加元数据的二进制文件。您是否在现有存储上测试过简单的轻量级迁移?我怀疑迁移会起作用,并将现有数据留在存储中

如果您希望将现有的二进制数据从SQLite文件中移出,那么您将看到更复杂的内容

大量的迁移将完成您想要的功能,但是如果商店很大,则可能需要很长时间,并且可能无法提供足够的反馈以获得良好的用户体验。我个人从未在IOS上使用过大量迁移,但它会实现您的目标


导出/导入也将起作用。当轻量级迁移不起作用时,我通常建议导出/导入。它涉及到中等数量的代码,但最终您拥有代码,了解整个过程,并可以根据您的确切需要对其进行调整

一条建议:不要使用“允许外部存储”,特别是如果您计划将来使用iCloud与核心数据同步。参考:


相反,您可能需要考虑将图像移动到自己的文件中,并将URL保存到数据库内的那些文件中。您必须找出最佳的迁移方法:如果您走这条路,轻量级迁移可能不是一个选项。

一条建议:不要使用“允许外部存储”,特别是如果您计划在将来使用iCloud与核心数据同步。参考:


相反,您可能需要考虑将图像移动到自己的文件中,并将URL保存到数据库内的那些文件中。您必须找出最佳的迁移方法:如果您走这条路,轻量级迁移可能不是一个选项。

有趣的是,您应该说,我今天也开始实施核心数据iCloud同步。这篇文章让人大开眼界。不会激发太多信心,尤其是最后一部分。看来我别无选择,只能保存URL,对吗?或者,现在还不是尝试实现同步的“时机”?如果你对此有什么想法的话,我正在看Drew McCormack的合奏。我个人的观点(在我的应用程序中发布了iCloud Core Data sync之后)是,如果你只将自己限制在iOS7/10.9上,这是非常可靠的。毫无疑问,在那之前你不应该支持任何东西。即使如此,它也需要一些工作来支持,如文章提到的(打开/关闭iCloud的选项、帐户转换等);遇到的最常见情况是,对于某些用户,同步在一段时间后停止工作,您必须提供一种方法来重置容器。我会做更多的研究。我还没有对集成进行足够的研究来评论它的能力,但我会小心地相信其他人的实现与苹果的实现。苹果的版本自发布以来一直存在问题,但他们在每一次更新中都对其进行了实质性的改进,并且他们有一个团队支持这一改进。重要的是要知道你在和谁建立依赖关系。但是你显然应该自己做研究。有人能更新一下吗?这些评论发表已经一年多了。我也读过这篇文章,但它的iOS9即将面世,我怀疑“允许外部存储”会(读:应该)起作用吗?如果不是,我们会听到更多的尖叫和抱怨。我即将创建一个新项目,需要做出正确的决策。谢谢有趣的是,你应该这么说,我今天也开始实施核心数据iCloud同步。这篇文章让人大开眼界。不会激发太多信心,尤其是最后一部分。看来我别无选择,只能保存URL,对吗?或者,现在还不是尝试实现同步的“时机”?我正在看德鲁·麦科马克的合奏,如果你对此有任何想法的话。我个人的意见