我尝试像这样在异步块中获取照片中的所有GIF:

DispatchQueue.main.async {
  allImageFetchResult.enumerateObjects(options: .concurrent, using: {(asset, _, _) in
    if asset.isGIF {
      assetSet.insert(asset)
    }
  })
}


但是,似乎是阻止用户界面,在阻止任务完成之前,该界面不会响应我的触摸操作。

最佳答案

DispatchQueue.main.async允许UI更新异步在主线程上。枚举对象时,您正在执行同步任务。见https://developer.apple.com/documentation/photos/phfetchresult/1620998-enumerateobjects


  讨论:此方法同步执行。


因此,您应该做的事是事先枚举,并且仅更新DispatchQueue中的UI。

关于ios - enumerateObjects块主UI?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44754623/

10-10 15:24