PHImageManager.default()。requestImageForAsset返回nil

时间:2017-10-27 14:06:28

标签: ios swift xcode photosframework

围绕这个主题有一些类似的问题,但它们似乎都没有帮助我。如果我错过了什么,我真诚的道歉。

这是我的代码:

 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.非常感谢您提供任何帮助!

0 个答案:

没有答案