我在App Store上有一个应用程序,并且得到了不错的使用。发布更新时,我的工作方式有所不同,并希望从应用程序中完全删除核心数据。在下一个发布的更新中,我该怎么做呢?

我是否只是删除AppDelegate文件中的所有核心数据代码,然后删除数据模型文件?

我想确定随着新更新的发布,没有任何设备会崩溃。

最佳答案

选项1:忽略它

到目前为止,这是最简单的解决方案。只需将核心数据文件留在用户设备上,它们将永远为用户占用空间。如果数据量很小(小于50mb),并且存储在其中的数据已经迁移或不需要迁移,那么这是一个不错的选择。您可以从应用程序中删除所有对核心数据的引用。

选项2:在后台将其删除

您可以在应用首次运行时在后台将其删除。创建背景上下文,获取所有对象,删除它们并保存。完成后,请在NSUserDefaults中将其标记为已完成,然后不再进行。如果对象的数量非常大,则可能需要更复杂的批处理提取和删除代码。您需要至少保留核心数据模型,甚至可能还要保留更多数据,才能使删除工作。

选项3:转换数据

这是最难的选择,因为过渡数据可能会花费一些时间,并且如果花费的时间太长,iOS将强制退出您的应用程序。因此,首先提供一个 View Controller ,向用户解释正在发生的事情-以及进度指示器。然后分批提取数据,保存到新存储中,将其删除,然后更新进度指示器。完成所有转换后,请更新 View Controller 。在这里,您可能需要保留大量的核心数据代码,以应对这种过渡。

10-01 05:38
查看更多