我嘗試通過以下代碼創建一個空的領域對象: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
提交
取消