gpt4 book ai didi

ios - 核心数据迁移 : How to populate new attribute?

转载 作者:行者123 更新时间:2023-11-28 21:18:21 27 4
gpt4 key购买 nike

我有什么感觉应该是一个简单的问题,但找不到简单的答案。

我有一个简单的迁移,我只需要添加一个合成属性以用于 Fetched Results Controller。这个新属性只是一个从另一个属性派生的 BOOL(用于排序)。

例子:

var title: String? // "engineer" | "accountant"
var hasTitle: Bool // title != nil

简单地说,我需要添加新字段 hasTitle(这看起来微不足道),然后填充一次。我想让这段代码远离我的正常应用程序逻辑,这样我就不必在所有架构更改的历史记录中编写代码。

是否可以进行轻量级迁移,然后进行孤立的一次性批量更新,或者我是否必须进行自定义/重量级迁移。

其次,如果我需要进行自定义迁移,是否有任何缓解技术 - 我可以使用值表达式“函数”来初始化上述内容吗(标题!= nil)

我想避免的是必须为迁移设置一个 NSUserDefaults 标志,并在每次启动时检查它。我想将迁移的复杂性包含在迁移特定代码中,而不是污染常规应用程序逻辑。

谢谢!

最佳答案

Is it possible to do a lightweight migration followed by an isolated, one-time mass update, or do I have to do a custom / heavyweight migration.

两者皆有可能。我会选择自定义迁移,只是因为它可以避免每次应用程序启动时都需要检查新属性的代码。对于像您这样的简单更改,它非常简单,尽管对于大多数 iOS 开发人员来说,这是一个未知领域。我 recently described the process in detail在另一个答案中。

如果您不进行自定义迁移,则需要将新属性设为可选,然后添加一些自定义代码来检查值是否存在,如果不存在则分配一个值。它可能看起来更简单,但这只是因为它可能看起来更熟悉。 Core Data 将使您无需在应用启动过程中插入此类检查,并确保您的转换代码仅在实际需要转换时运行。

关于ios - 核心数据迁移 : How to populate new attribute?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40754099/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com