Проблема запроса изображения Swift PHAsset - PullRequest
0 голосов
/ 13 февраля 2019

У меня возникла проблема при запросе 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) Эта ошибка возникает при выборе 2-й ячейки (индекс 1) в collectionView:

2019-02-12 21:12: 40.029686-0800 ModularX [15837: 4640133] [ImageManager] FigPhotoDecompressionContainerDecodeImageForIndexAsync - [PLFigPreheatItem startPreheatRequestWithCompletionHandler:] _ block_invoke_2, возвращенная -16074/122: 02: 09/04/06/02/02/02/02/02/02/02/02/02/02/02/2/20/20/20/20-0800 ModularX [15837: 4640145] [ImageManager] PFFigCreateCGImageFromImageData UIImage * PLCreateImageFromDataWithFormat (NSData *, BOOL, PLPhotoImageFormatID, NSString *, BOOL, CFDictionaryRef *, -124 * * 10 * * 10 *

1023 *1023* 1023 *1023*) *2323*)не так?

Спасибо

...