Reputation: 3
I tried to create an empty realm object by following code:
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()
But I got the error like this :
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
Upvotes: 0
Views: 547
Reputation: 2321
To create object with realm instance will perform transaction on realm Database.
So you should have to wrap that code inside transaction wrapper.
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.
Or use realm's transaction method.
2)
val realm = Realm.getDefaultInstance()
realm.executeTransaction { realm ->
val myModel: MyModel? = realm.createObject(MyModel::class.java) // Create a new object
}
Note:
All write operations on this newly created realm Object should perform under those realm transaction block.
Upvotes: 1