4
- データベースをクリアします。
- 新しいデータを取得するAPI呼び出しを行います。
- APIから取得したデータをバックグラウンドスレッドのデータベースに書き込みます。
- メインスレッドとレンダリングUIでデータベースからデータを読み取ります。
手順4では、データは最新のデータである必要がありますが、データは表示されません。こうしたメインスレッド、通知の結果としてupdate to the latest version of the data in the Realm fileとしてrunloops、とのスレッドでバックグラウンドスレッドでレルムに書き込んだ後、メインスレッドに更新データが表示されない
// remark: all main thread shared a realm object
DBManager.deleteAll()
// call api success, get newdata
DispatchQueue.global(qos: .background).async {
DBManager.initDBData(<newdata>)
DispatchQueue.main.async {
print("has data?????", DBManager.getBrands().count)
}
}
// when write
func write() {
let realmBackgroud = try! Realm()
try! realmBackgroud.write {}
}
ここで、書き込み関数を呼び出しましたか? –