我想将原始列表添加到现有模型中,但出现异常。
注意:这全部完成和Kotlin 。
这是模型:
open class Foo(
@PrimaryKey var id: Int = 0
) : RealmObject()
现在,我要添加以下字段:
var idList: RealmList<Int> = RealmList()
这可能是一个空列表,所以我用一个空白的
RealmList
(用于非原始列表字段)对其进行了初始化。我的迁移如下所示:
schema.get("Foo")
?.addRealmListField("idList", Int::class.java)
运行该应用程序时,我收到
RealmMigrationNeededException
:我可以通过在模型中的新字段中添加
@Required
来解决此问题,但是我不确定列表是否仍然可以为空/ null。将原始列表添加到模型的正确方法是什么,为此的正确迁移是什么?
最佳答案
实际上,您的迁移是正确的。如果您不希望列表能够包含null
作为值(考虑它是RealmList<Integer>
,其中Integer
可以为null),则应添加@Required
批注。