猿问

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

我尝试通过以下代码创建一个空的领域对象:


val realm = Realm.getDefaultInstance()

var arr = ArrayList<SildayAlarm>()

val myModel: MyModel? = realm.createObject(MyModel::class.java)

我的模型.kt


@RealmClass

open 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 行


杨魅力
浏览 87回答 1
1回答

慕妹3146593

使用领域实例创建对象将在领域数据库上执行事务。因此,您应该必须将该代码包装在事务包装器中。1)val realm = Realm.getDefaultInstance()realm.beginTransaction();&nbsp; &nbsp;// To start realm transaction.val myModel: MyModel? = realm.createObject(MyModel::class.java) // Create a new objectrealm.commitTransaction();&nbsp; &nbsp;// To complete realm transaction.或者使用realm的交易方式。2)val realm = Realm.getDefaultInstance()realm.executeTransaction { realm ->&nbsp; &nbsp; &nbsp; val myModel: MyModel? = realm.createObject(MyModel::class.java) // Create a new object}笔记:这个新创建的领域对象上的所有写操作都应该在这些领域事务块下执行。
随时随地看视频慕课网APP

相关分类

Java
我要回答