requestImageForAsset resultHandler 块永远不会被调用
Posted
技术标签:
【中文标题】requestImageForAsset resultHandler 块永远不会被调用【英文标题】:requestImageForAsset resultHandler block never gets called 【发布时间】:2018-09-15 02:57:17 【问题描述】:我正在尝试从 PHAsset 为集合视图单元加载 UIImage,如下所示,
- (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 不是零。 TIA
【问题讨论】:
你确定 _imageManager 不是 nil 吗? 什么是_imageManager,它从何而来? 【参考方案1】:啊!我知道我一定是在做一些愚蠢的事情! 8-)
将此添加到 viewDidLoad 解决了它。
_imageManager = [[PHCachingImageManager alloc] init];
[self resetCachedAssets];
感谢 trungduc 和 El Tomato 为我指明了正确的方向。
【讨论】:
以上是关于requestImageForAsset resultHandler 块永远不会被调用的主要内容,如果未能解决你的问题,请参考以下文章
重新加载和调用requestImageForAsset时UICollectionView闪烁
HighQualityFormat 的 PHImageManager.requestImageForAsset 从不调用 resultHandler
requestImageForAsset resultHandler块永远不会被调用
requestImageForAsset resultHandler 块永远不会被调用
在 iOS 9 RequestImageForAsset 返回小图像检索 1:1 带过滤器的照片
PhotoKit:使用 requestImageForAsset 通过 PHImageManagerMaximumSize 获取资产时崩溃 [assetsd 被中断或死亡]