APIの値をRealmに保存して、Realmからデータを取得してという動作をさせたかったのですがうまく行かず質問させていただきます。

今回はhoge変数のget/setをRealmの操作とするようにしました。
しかし、set後に直ぐにgetをした際にデータが更新される前のデータになってしまいます。
保存(更新)が完了していないため、完了するまえのデータが取得してしまうのではないかと思っています。

これを回避する方法というのはありますでしょうか?あればご教授お願い致します。

Realmバージョン:3.10.0

  • Realmオブジェクト Sample1
class Sample1 : Object {
    @obj dynamic var value1: Int = 0
    @obj dynamic var value2: Int = 0

    init(value1: Int, value2: Int) {
        self.value1 = value1
        self.value2 = value2
    }
}
  • Sample1を利用している関数
    var value1: Int {
        get {
            let realm = try Realm()
            return  realm.object(Sample1.self).first?.value1  ?? 0
        }
        set {
            let realm = try Realm()

            try realm.write {
                let object = Sample(value1: newValue, value2: 0)
                realm.add(object)
            }
        }
    }

    func viewDidLoad() {
        self.apiCall()
        let value = self.value1 // ここは0が取得される
    }

    func apiCall() {
        let result = // APIコール
        self.value1 = result.value1 // value1に5を入れるとする
    }
}