我尝试通过以下代码创建一个空的 Realm 对象:
val realm = Realm.getDefaultInstance()
var arr = ArrayList<SildayAlarm>()
val myModel: MyModel? = realm.createObject(MyModel::class.java)
MyModel.kt
@RealmClass
open class MyModel(
var code: Int? = 0
): RealmObject()
但是我收到了这样的错误:
java.lang.IllegalStateException: Cannot modify managed objects outside of a write transaction. in /Users/cm/Realm/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_OsObject.cpp line 336
最佳答案
使用 Realm 实例创建对象将在 Realm 数据库上执行事务。
所以您应该必须将该代码包装在事务包装器中。
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
}
注意:
此新创建的 Realm 对象上的所有写入操作都应在这些 Realm 事务 block 下执行。
关于java - Android:如何创建空 Realm 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57932402/