簡體   English   中英

Android:如何創建空的領域對象?

[英]Android: How to create empty realm object?

我嘗試通過以下代碼創建一個空的領域對象:

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:無法在寫事務之外修改托管對象。 在/Users/cm/Realm/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_OsObject.cpp行中

用領域實例創建對象將在領域數據庫上執行事務。

因此,您必須將該代碼包裝在事務包裝器中。

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.

或使用領域的交易方法。

2)

val realm = Realm.getDefaultInstance()
realm.executeTransaction { realm ->
      val myModel: MyModel? = realm.createObject(MyModel::class.java) // Create a new object
}

注意:

在這個新創建的領域對象上的所有寫操作應在這些領域事務塊下執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM