即使使用DispatchQueue,Firebase也会冻结UI

时间:2017-03-30 00:08:27

标签: ios swift firebase grand-central-dispatch freeze

根据我的理解,Firebase会执行主线程的操作,并且不应在执行此操作时暂停UI。

下面的代码是一个简化的示例,但在我的代码中的任何地方,我都有一个Firebase观察器,其中包含更新UI的代码,当Firebase下载数据时,用户界面会冻结。

我尝试在一个新的,干净的项目中编写相同的代码,然后问题不再存在。问题可能是通过pod安装Firebase吗?我也在使用GeoFire,这会以任何方式影响吗?

我还尝试将观察者放在DispatchQueue.global()。async块中。我已经尝试完全删除任何DispatchQueue代码,但它完全相同。

func observe() {
  firebaseReference.observe(.value, with: { (snapshot) in
      DispatchQueue.main.async {
        self.collectionView?.reloadData()
      }
  })
}

0 个答案:

没有答案