小编苏文梁*_*苏文梁的帖子

在后台线程中写入Realm后,主线程看不到更新的数据

  1. 清除数据库.
  2. 进行API调用以获取新数据.
  3. 将从API检索的数据写入后台线程中的数据库中.
  4. 从主线程上的数据库中读取数据并呈现UI.

在步骤4中,数据应该是最新数据,但我们没有看到任何数据.

// 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 {}
 }
Run Code Online (Sandbox Code Playgroud)

multithreading realm ios swift

10
推荐指数
1
解决办法
3467
查看次数

标签 统计

ios ×1

multithreading ×1

realm ×1

swift ×1