从 App Store 上的应用程序中删除核心数据支持

Remove Core Data Support From An App On The App Store

我在 App Store 上有一个应用程序,它的使用率很高。我在发布更新时采取了不同的做法,并希望从应用程序中完全删除核心数据。在下一个发布的更新中,我究竟应该如何去做?

是否简单地删除 AppDelegate 文件中的所有核心数据代码,并删除数据模型文件?

我想确定没有单位会在新更新发布时崩溃。

选项 1:忽略它

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

方式二:后台删除

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

选项 3:转换数据

这是最难的选择,因为转换数据需要时间,如果时间过长 iOS 将强制退出您的应用。因此,首先呈现一个视图控制器,向用户解释正在发生的事情——也许还有一个进度指示器。然后批量获取数据,保存到你的新商店,删除它,并更新你的进度指示器。当所有的转换完成后,更新你的视图控制器。在这里你可能需要保留大量的核心数据代码来处理这个转换。