我想对用户的照片库做一些工作。由于图书馆可能很大,我想在后台进行。我想知道执行 Assets 获取(如 PHAsset.fetchAssets
)并在后台处理它们是否安全?
我现在只需要 Assets 元数据。
这样的事情是否安全:
class ViewController: UIViewController {
var cachedResult = [Any]()
func doBackgroundCalculationsOnPhotos(completionHandler: ([Any]) -> ()) {
DispatchQueue.global(qos: .userInitiated).async {
let photos = PHAsset.fetchAssets(with: .image, options: nil)
var result = [Any]()
photos.enumerateObjects({ asset, _, _ in
result.append(calculateSomething(asset))
})
DispatchQueue.main.async {
self.cachedResult = result
completionHandler(result)
}
}
}
}
是否有任何引用文档可以让我了解照片框架和后台访问?
最佳答案
是的,获取可能需要一些时间,因此最好在后台执行此操作,如 fetchAssets(with:options:)
方法是同步的。
关于ios - 我可以在后台线程中获取 PHAsset 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44563228/