围绕这个主题有一些类似的问题,但它们似乎都没有帮助我。如果我错过了什么,我真诚的道歉。
这是我的代码:
func loadImageByAssetID(_ assetID:String!, forSize:CGSize){
let fetchAssets = PHAsset.fetchAssets(withLocalIdentifiers: [assetID], options: PHFetchOptions())
if fetchAssets.count > 0 { //Asset found
let asset = fetchAssets.firstObject as! PHAsset
let options = PHImageRequestOptions()
options.version = .original
options.deliveryMode = .highQualityFormat
options.isNetworkAccessAllowed = true
options.progressHandler = { progress, error, stop, info in
DispatchQueue.main.sync {
print("dict: \(String(describing: info))") //Printing to have more info on error
self.delegate?.updateProgress(progress)
}
}
PHImageManager.default().requestImage(for: asset,
targetSize: forSize,
contentMode: .aspectFit,
options: options,
resultHandler: { image, info in
print("dict: \(String(describing: info))") //Printing to have more info on error
guard let image = image else {
self.delegate?.imageLoaded(nil)
return
}
self.delegate?.imageLoaded(image)
})
}else{ //Asset not found
self.delegate?.imageLoaded(nil)
}
}
现在这个requestImage经常返回nil。这是来自progressHandler的信息:
dict:可选([AnyHashable(" PHImageResultRequestIDKey"):29,AnyHashable(" PHImageResultIsDegradedKey"):0])
这里是requestImage requestHandler:
的信息dict:可选([AnyHashable(" PHImageResultRequestIDKey"):29,AnyHashable(" PHImageResultIsDegradedKey"):0,AnyHashable(" PHImageResultDeliveredImageFormatKey"):10000, AnyHashable(" PHImageResultWantedImageFormatKey"):10000,AnyHashable(" PHImageErrorKey"):错误域= CloudPhotoLibraryErrorDomain代码= 80"缺少必需的主要区域" UserInfo = {NSLocalizedDescription = Missing必需的主要区域},AnyHashable(" PHImageResultIsInCloudKey"):1,AnyHashable(" PHImageResultIsPlaceholderKey"):0])
这是什么"缺少所需的主要区域"?我究竟做错了什么?我正在使用XCode 9和iOS 11.非常感谢您提供任何帮助!