为了账号安全,请及时绑定邮箱和手机立即绑定

Android:如何创建空领域对象?

Android:如何创建空领域对象?

杨魅力 2023-07-28 15:12:57
我尝试通过以下代码创建一个空的领域对象: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

}

笔记:


这个新创建的领域对象上的所有写操作都应该在这些领域事务块下执行。


查看完整回答
反对 回复 2023-07-28
  • 1 回答
  • 0 关注
  • 86 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信