【问题标题】:How to keep old data while updating new iOS application?如何在更新新的 iOS 应用程序时保留旧数据?
【发布时间】:2014-08-22 14:08:58
【问题描述】:

我的 iOS 应用程序正在使用 NSCoreData 并将大量数据存储在数据库中。我在 xcode 的 *.xcdatamodeld 文件中设计了数据库模式。我计划尽快更新我的应用程序并且需要稍微更改架构。但是,当我测试它时,新版本正在删除所有旧数据,保存在以前的版本中。

如何在不丢失应用中旧数据的情况下有效地迁移到新的数据库架构? 我试图用谷歌搜索一个合适的解决方案,但找不到任何有效的想法,如何去做。

【问题讨论】:

  • 了解您更改架构的程度会很有帮助。如果它们是较小的更改,则自动迁移会处理它 - 您只需要添加另一个模型版本号。如果它们是重大更改,那么您需要编写手动迁移
  • 您好,改动很小。我需要在实体中添加一些额外的属性。您能否指出任何参考,如何在我的模型中设置版本号?
  • 那么你只需要做一个自动迁移。搜索它,因为它很容易在您的代码中实现。此外,在 Google 上快速搜索“xCode 型号”会将您指向 Apple Docs:developer.apple.com/library/Mac/recipes/…developer.apple.com/library/Mac/recipes/…
  • 谢谢!这很有帮助。一个小问题。如果我已经发布的应用没有任何型号版本号,如果我在新版本中分配一个版本号,它会工作吗?
  • 应该的。但老实说,这个问题对你来说很快就得到了回答——从应用商店安装应用,然后在设备上使用新型号从 xCode 运行它。你可以看到自己会发生什么。如果它不起作用,那么您可以研究如何修复它。

标签: ios objective-c core-data


【解决方案1】:

使用文档目录,即使您更新应用,它也会保留您的数据。

你可以在这里What is the documents directory (NSDocumentDirectory)?找到有关文档目录的信息

【讨论】:

    猜你喜欢
    • 2014-02-22
    • 2012-03-19
    • 1970-01-01
    • 1970-01-01
    • 2012-05-01
    • 2016-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多