使用PHAssets时出现此错误:创建具有未知类型的图像格式是一个错误

时间:2017-04-06 04:49:50

标签: ios objective-c iphone image swift3

我已经创建了照片中所有缩略图图像的集合视图,为此我编写了以下代码:

    var photoAssets: PHFetchResult<PHAsset> = PHFetchResult()

    let allPhotosOptions = PHFetchOptions()
    allPhotosOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: true)]

    let allPhotosResult = PHAsset.fetchAssets(with: PHAssetMediaType.image, options: allPhotosOptions)

    photoAssets = allPhotosResult

现在我有了PhotoAssets of Array,用于获取我编写代码的每个PHAsset的缩略图:

    let manager = PHImageManager.default()
    let requestOptions = PHImageRequestOptions()
    public var thumbnailSize = CGSize(width: 100, height: 100)
    requestOptions.isSynchronous = true
    requestOptions.isNetworkAccessAllowed = true
    requestOptions.deliveryMode = .highQualityFormat
    requestOptions.resizeMode = .exact

    manager.requestImage(for: selectedAsset, targetSize: self.thumbnailSize, contentMode: PHImageContentMode.aspectFill, options: requestOptions) {
        image, info in
        // here I am getting the thumbnail image this code is running fine.
    }

当我从UICollection视图中选择任何缩略图时,我得到索引并从 photoAssets 数组中获取PHAsset。 现在为我的PHAsset创建完整大小的图像,我写了代码:

    let manager = PHImageManager.default()
    let requestOptions = PHImageRequestOptions()
    public var thumbnailSize = CGSize(width: 100, height: 100)
    requestOptions.isSynchronous = true
    requestOptions.isNetworkAccessAllowed = true
    requestOptions.deliveryMode = .highQualityFormat
    requestOptions.resizeMode = .exact
    manager.requestImage(for: selectedAsset, targetSize: PHImageManagerMaximumSize, contentMode: PHImageContentMode.aspectFill, options: requestOptions) {
        image, info in
        //completion(image, info as AnyObject)
        //here i'll get the full size image for requested PHasset 
   }

我的问题是在获取非iCloud设备的全尺寸图像时,我正在获取图像,但对于那些启用了iCould的设备,我得到 image = nil 创建具有未知类型的图像格式是错误

1 个答案:

答案 0 :(得分:0)

  

创建具有未知类型的图像格式是错误

这是xcode中的一个错误,如果选择器可以正确选择并返回图像,这意味着一切正常,只需忽略它。