iOS MagicalRecord--我可以在事后更改 MR/CD 设置方案吗?

Posted

技术标签:

【中文标题】iOS MagicalRecord--我可以在事后更改 MR/CD 设置方案吗?【英文标题】:iOS MagicalRecord--Can I change the MR/CD setup scheme after the fact? 【发布时间】:2014-01-08 18:13:24 【问题描述】:

我有一个通过 MagicalRecord 使用 Core Data 的小应用程序,它运行良好,在其基本的方式中,很大程度上感谢我在这里找到的帮助。

现在,我发现我需要在我的数据模型中的实体上添加一个新属性。而且,迟来的,我还发现我应该使用 MagicalRecord 方法“setupCoreDataStackWithAutoMigratingSqliteStoreNamed”而不是简单的 Jane “setupCoreDataStackWithStoreNamed:”

我了解自动迁移选项将自动处理轻量级迁移(我的第一个)。

在我陷入真正的麻烦之前,我可以简单地将 AppDelegate 中的那一行代码更改为:

[MagicalRecord setupCoreDataStackWithStoreNamed:@"MyDatabase.sqlite"];

到:

[MagicalRecord setupCoreDataStackWithAutoMigratingSqliteStoreNamed:@"MyDatabase.sqlite"];

对我温柔一点——在我所做的所有研究和研究中,我的意思是,确保在创建数据模型时和决定之前考虑并包含所有可能的属性在哪个 MR 选项上使用。我敢肯定,对于更有经验的程序员来说,这个问题是显而易见的,但对我来说却不是。 :)

谢谢!

【问题讨论】:

【参考方案1】:

是的,应该没问题。自动迁移方法所做的只是为堆栈设置设置一些配置选项。其余的初始化与基本设置相同。

但是,如果您在开发中使用您的应用,我还建议您删除旧版本的商店并重新开始。当我快速更新或修改应用的核心数据模型时,这通常是我在开发中的工作方式。

【讨论】:

非常感谢您的回答和 MagicalRecord!这是进入 Core Data 的巨大帮助。如果我可以问,我将如何删除旧版本的商店? 有多种选择。最简单的方法是从模拟器/设备中删除应用程序。但您也可以只删除您的 MyDatabase.sqlite 文件。 MagicalRecord 有一个选项可以自动为您删除不兼容的商店。查看标题以了解选项是什么(我不记得我头顶上的实际名称) 谢谢@Sandro。我将在这里问一个可能是一个非常愚蠢的问题:我是否假设太多,以至于我认为使用 MagicalRecord 我所要做的就是更改上面提到的那一行代码?或者我是否还需要创建一个新模型并遵循为没有 MagicalRecord 的轻量级迁移指定的其他步骤。原谅我的菜鸟,但我只是尝试添加一个属性,重新创建子类并更改设置方法,如上所述。现在新属性似乎不见了,我根本不知道它是否正在创建。再次感谢所有帮助! 对不起@casa。直到我发表评论后,我才看到你的评论。请随时让我回到上述困境的轨道上。谢谢!

以上是关于iOS MagicalRecord--我可以在事后更改 MR/CD 设置方案吗?的主要内容,如果未能解决你的问题,请参考以下文章

MagicalRecord 在 ios8 上崩溃

MagicalRecord 在 ios 8.1 的第一次运行时崩溃

WatchKit 和 MagicalRecord - 这可能吗?

MagicalRecord (CoreData) + Today Extension (iOS8)... 他们会玩吗?

MagicalRecord 入门

带有核心数据/MagicalRecord 意外行为的 iOS 单元测试