- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有什么感觉应该是一个简单的问题,但找不到简单的答案。
我有一个简单的迁移,我只需要添加一个合成属性以用于 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/
我是一名优秀的程序员,十分优秀!