将 iOS 应用从 NSCoding 转换为 Core Data
Posted
技术标签:
【中文标题】将 iOS 应用从 NSCoding 转换为 Core Data【英文标题】:Convert iOS app from NSCoding to Core Data 【发布时间】:2012-04-17 00:19:48 【问题描述】:我的应用目前使用 NSCoding 来存储持久数据,但我想切换到 Core Data 以利用它与 iCloud 的集成。问题是该应用目前在 App Store 上运行,我担心一旦我做出更改,我当前用户本地商店的数据就会丢失。
理论上,我应该能够做到以下几点:
-
测试是否存在 NSCoding 数据
将数据转换为核心数据格式
为所有未来的“保存”使用 Core Data
...但我没有找到任何有关进行转换的文档。
有什么想法吗?还是我完全不在某个地方?
谢谢
【问题讨论】:
你能做到吗?我发现自己处于类似的情况。 【参考方案1】:CoreData 做了一些不错的自动迁移,但那是来自不同的 CoreData 存储。在您的情况下,您必须编写自己的转换代码。
保留“旧”类,如果存在“旧”存储,则将其解压缩。然后,只需遍历存储中的对象,并创建它们的 CoreData 等价物。保存 CoreData,关闭它,然后重新加载它以检查以确保一切都相同。然后,删除旧的存储文件。
唯一的缺点是您必须保留旧代码(至少足以取消归档旧的对象格式)。
【讨论】:
以上是关于将 iOS 应用从 NSCoding 转换为 Core Data的主要内容,如果未能解决你的问题,请参考以下文章
Swift 中 SKProduct 的 NSCoding 错误