レルム DB テーブルにレコードを追加しようとしています。
DB に必要なテーブルを表すクラス Connection があり、列を表す動的変数を作成しました。
import Foundation
import RealmSwift
import Realm
open class ConnectionState: Object {
open dynamic var _id : String = NSUUID().uuidString
open dynamic var a : String = ""
open dynamic var b : String = ""
open dynamic var c : Int = 0
open override class func primaryKey() -> String? {
return "_id"
}
required public init() {
super.init()
}
required public init(realm: RLMRealm, schema: RLMObjectSchema) {
super.init(realm: realm, schema: schema)
}
required public init(value: Any, schema: RLMSchema) {
fatalError("init(value:schema:) has not been implemented")
}
}
次に、私のコードでは、次のように書き込みトランザクションを作成してコミットしようとしています。
let ConnectionState = ConnectionState()
ConnectionState.a = "a"
ConnectionState.b = "b"
ConnectionState.c = 1
try! self.realm.write {
self.realm.add(ConnectionState)
}
try! self.realm.commitWrite()
このコードを実行すると、次のエラーが表示されます。
Can't commit a non-existing write transaction
私は何が欠けていますか?ConnectionState クラスに init が必要ですか? commitWrite を追加する前に、レルム ブラウザでデータベースを表示しようとしていました。xCode で自分のデバイスを見つけ、コンテナーをダウンロードすることを選択しましたが、空でした。次に、commitWrite を追加する必要があると考えました