【发布时间】:2021-06-20 14:18:21
【问题描述】:
我正在学习如何使用 PHFetchRequest 从用户的照片库中获取图像,然后在自定义图像选择器的滚动视图中显示它们但我得到的大多是零返回数据和一些返回作为可以解包的可选数据。
我在 iCloud 上备份了我所有的照片,这可能是我得到零的原因吗??
下面是我的结构中的函数,它获取数据并将其附加到一个空数组变量...
我做错了什么?谢谢大家!
XCode log showing nil and optional returns
func getAllImages() {
let request = PHAsset.fetchAssets(with: .image, options: .none)
DispatchQueue.global(qos: .background).async {
let options = PHImageRequestOptions()
options.isSynchronous = true
request.enumerateObjects { (asset, _, _ ) in
PHCachingImageManager.default().requestImage(for: asset, targetSize: .init(), contentMode: .default, options: options) { (image, _) in
print(image?.pngData())
// I had to coalesce with an empty UIImage I made as an extension
let data1 = Images(image: (image ?? UIImage.emptyImage(with: CGSize(width: 10, height: 10)))!, selected: false)
self.data.append(data1)
}
}
if request.count == self.data.count {
self.getGrid()
}
}
}
【问题讨论】: