Swift PHAsset图像请求问题

时间:2019-02-13 05:14:08

标签: ios swift phasset

请求PHAsset/PHImageManager

时遇到问题

最初,我是通过PHAsset.fetchAssets获取图像资产的,将它们附加到UIImage数组中,然后将它们加载到collectionView中。这没有问题。请求图像的大小足够小,不会导致任何加载延迟。

接下来,当我在collectionView委托函数中选择didSelectItemAt单元格时,我试图以更大的图像尺寸(质量)重新请求PHAsset,并附加将较大的图像放入另一个UIImage数组中。

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {

    /* Store the selected image into a variable */
    let selectedImage = images[indexPath.item]

    /* Request a larger quality image */
    if let index = self.images.index(of: selectedImage) {
        let selectedAsset = self.assets[index]

        let imageManager = PHImageManager.default()
        let targetSize = CGSize(width: 600, height: 600)

        imageManager.requestImage(for: selectedAsset, targetSize: targetSize, contentMode: .default, options: nil) { (image, info) in

            if let image = image {
                self.selectedImages.append(image)
            }
        }
    }
print(selectedImages.count)
}

我面临的两个问题:

1)在打印数组的计数时,我得到的是奇数(1、3、5、7等),而不是递增的计数(1、2、3、4等)。不知道为什么会这样吗?导致我的“ selectedImages”数组异常增加。

2)选择collectionView的第二个单元格(索引1)时,会发生此错误:

  

2019-02-12 21:12:40.029686-0800 ModularX [15837:4640133] [ImageManager]   FigPhotoDecompressionContainerDecodeImageForIndexAsync   -[PLFigPreheatItem startPreheatRequestWithCompletionHandler:] _ block_invoke_2返回   -16074 from /var/mobile/Media/DCIM/102APPLE/IMG_2427.JPG 2019-02-12 21:12:40.041596-0800 ModularX [15837:4640145] [ImageManager]   PFFigCreateCGImageFromImageData UIImage   * PLCreateImageFromDataWithFormat(NSData *,BOOL,PLPhotoImageFormatID,NSString *,BOOL,CFDictionaryRef *,NSDictionary *)返回-16074

知道我要去哪里哪里吗?

谢谢

0 个答案:

没有答案