【发布时间】:2021-02-05 15:46:49
【问题描述】:
我在 Realm 迁移期间遇到了问题。错误消息说该属性不存在,但这是我的新对象的样子:
class RecipeStep: Object {
@objc dynamic var recipeId: Int = 0
let stepNumber = RealmOptional<Int>()
@objc dynamic var stepText: String? = nil
}
这是旧对象架构的样子:
class RecipeStep: Object {
let recipeId = RealmOptional<Int>()
let stepNumber = RealmOptional<Int>()
@objc dynamic var stepText: String? = nil
}
如您所见,唯一的变化是 recipeId 的类型:将 RealmOptional 转换为 Int。这是我用来执行此操作的迁移块:
migration.enumerateObjects(ofType: RecipeStep.className()) { oldObject, newObject in
if let recipeStepRecipeId = oldObject?["recipeId"] as? Int {
newObject?["recipeId"] = recipeStepRecipeId
}
}
我做错了什么?
【问题讨论】:
标签: ios swift realm realm-migration