我尝试通过以下代码创建一个空的领域对象:val realm = Realm.getDefaultInstance()var arr = ArrayList<SildayAlarm>()val myModel: MyModel? = realm.createObject(MyModel::class.java)我的模型.kt@RealmClassopen class MyModel( var code: Int? = 0): RealmObject()但我收到这样的错误:java.lang.IllegalStateException:无法在写入事务之外修改托管对象。在 /Users/cm/Realm/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_OsObject.cpp 第 336 行
1 回答
慕妹3146593
TA贡献1820条经验 获得超9个赞
使用领域实例创建对象将在领域数据库上执行事务。
因此,您应该必须将该代码包装在事务包装器中。
1)
val realm = Realm.getDefaultInstance()
realm.beginTransaction(); // To start realm transaction.
val myModel: MyModel? = realm.createObject(MyModel::class.java) // Create a new object
realm.commitTransaction(); // To complete realm transaction.
或者使用realm的交易方式。
2)
val realm = Realm.getDefaultInstance()
realm.executeTransaction { realm ->
val myModel: MyModel? = realm.createObject(MyModel::class.java) // Create a new object
}
笔记:
这个新创建的领域对象上的所有写操作都应该在这些领域事务块下执行。
添加回答
举报
0/150
提交
取消