Блок requestImageForAsset resultHandler никогда не вызывается - PullRequest
0 голосов
/ 15 сентября 2018

Я пытаюсь загрузить UIImage из PHAsset для ячейки представления коллекции следующим образом:

- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath;
{
    myCell *cell = [cv dequeueReusableCellWithReuseIdentifier:@"CELL_ID" forIndexPath:indexPath];

    PHAsset *asset = _assetsFetchResults[indexPath.item];
    NSLog(@"asset = %@", asset);

    PHImageRequestOptions *myOpts = [[PHImageRequestOptions alloc]init];
    myOpts.synchronous = YES;

    [_imageManager requestImageForAsset:asset
                             targetSize:AssetGridThumbnailSize
                            contentMode:PHImageContentModeDefault
                                options:myOpts
                          resultHandler:^(UIImage *myResult, NSDictionary *myInfo) {
                                  NSLog(@"***---info = %@", myInfo);
                                  cell.myImageView.image = myResult;
                              }];


    return cell;
}

Это выполняется без ошибок, но изображение не отправляется в ячейку, и блок обработчика результатов никогда не вызывается. PHAsset не ноль. ТИА

1 Ответ

0 голосов
/ 15 сентября 2018

Тьфу! Я знал, что должен делать что-то глупое! 8-)

Добавление этого к viewDidLoad решило эту проблему.

_imageManager = [[PHCachingImageManager alloc] init];
[self resetCachedAssets];

Спасибо trungduc и El Tomato за то, что они указали мне правильное направление.

...