检查以前的领域对象是否包含新列
Check if previous Realm Object contains new column
我上网查了一下,但找不到太多帮助。基本上,由于 Realm 中的崩溃,我们计划 "emergency" 发布我们的应用程序 - 我们忘记为新的 属性.
创建迁移
migration.enumerateObjects(ofType: Pet.className(), {oldObject, newObject in
newObject?[“nickname”] = nil
}
由于这是一个 "emergency" 版本,一些用户已经拥有 "nickname" 属性,如果上面的代码运行此字段将更改为 无。因此,我们想检查 "nickname" 属性 是否已经存在于 oldObject 中,以便我们可以保留该值。
编辑: 我试过 oldObject?["nickname"] == nil
这对那些已经拥有 昵称 属性 的用户有效.但是我遇到 NSException 对于还没有 nickname 属性.
的用户
有人知道怎么做吗?谢谢!
我想我自己找到了答案:
migration.enumerateObjects(ofType: Pet.className(), {oldObject, newObject in
let hasNicknamePropery = oldObject?.objectSchema.properties.contains(where: { [=10=].name == "nickname" }) ?? false
if !hasNicknamePropery {
newObject?[“nickname”] = nil
}
}
我只是检查 oldObject 的架构并检查 "nickname" 属性 是否已经存在。
我上网查了一下,但找不到太多帮助。基本上,由于 Realm 中的崩溃,我们计划 "emergency" 发布我们的应用程序 - 我们忘记为新的 属性.
创建迁移migration.enumerateObjects(ofType: Pet.className(), {oldObject, newObject in
newObject?[“nickname”] = nil
}
由于这是一个 "emergency" 版本,一些用户已经拥有 "nickname" 属性,如果上面的代码运行此字段将更改为 无。因此,我们想检查 "nickname" 属性 是否已经存在于 oldObject 中,以便我们可以保留该值。
编辑: 我试过 oldObject?["nickname"] == nil
这对那些已经拥有 昵称 属性 的用户有效.但是我遇到 NSException 对于还没有 nickname 属性.
有人知道怎么做吗?谢谢!
我想我自己找到了答案:
migration.enumerateObjects(ofType: Pet.className(), {oldObject, newObject in
let hasNicknamePropery = oldObject?.objectSchema.properties.contains(where: { [=10=].name == "nickname" }) ?? false
if !hasNicknamePropery {
newObject?[“nickname”] = nil
}
}
我只是检查 oldObject 的架构并检查 "nickname" 属性 是否已经存在。