Realm Migration Error: 'RLMException': 'Property 'RecipeStep.recipeId' does not exist'

Realm Migration Error: 'RLMException': 'Property 'RecipeStep.recipeId' does not exist'

我 运行 在 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
               }
            }

我做错了什么?

事实证明这是旧版本 Realm (v5.4.5) 中的错误。我更新到版本 10.0.0 并解决了这个问题。迁移成功完成。我的代码没有任何更改。

我在 Xcode 12,为 iOS 13 建造。

在这个 .

上找到了关于一个听起来类似的错误的讨论