gpt4 book ai didi

iphone - iOS - 从 block 中返回变量

转载 作者:搜寻专家 更新时间:2023-10-30 20:20:34 26 4
gpt4 key购买 nike

我有一个 iOS 项目,它从数据源方法中提取图像。我希望能够从 assets library 中提取图像(下面的代码块就可以做到这一点)。

但是,我需要这个dataSource 方法来返回一个UIImage,但是当我使用 Assets 库方法获取图像时,图像在结果 block 中返回.简单地将 return image 放在结果 block 中显然是行不通的。

有谁知道如何让该方法从结果 block 内部返回一个 UIImage 吗?我已经看到了其他几个关于在 block 内返回图像的 SO 问题,但据说它们调用了另一种方法。我 - 不幸的是 - 不能这样做,因为这个方法是 nimbus必须返回 UIImage 的数据源方法。

如有任何帮助或建议,我们将不胜感激!代码如下:

- (UIImage *)photoAlbumScrollView: (NIPhotoAlbumScrollView *)photoAlbumScrollView
photoAtIndex: (NSInteger)photoIndex
photoSize: (NIPhotoScrollViewPhotoSize *)photoSize
isLoading: (BOOL *)isLoading
originalPhotoDimensions: (CGSize *)originalPhotoDimensions {

__block UIImage *image = nil;
ALAssetsLibrary* assetslibrary = [[ALAssetsLibrary alloc] init];
[assetslibrary assetForURL:[_photos objectAtIndex:photoIndex]
resultBlock:^(ALAsset *asset){
ALAssetRepresentation *rep = [asset defaultRepresentation];
CGImageRef imageRef = [rep fullScreenImage];
if (imageRef) {
image = [UIImage imageWithCGImage:imageRef];

}

}
failureBlock:^(NSError *error) {
//return nil;
}];

return image;
}

最佳答案

您应该为每个图像创建一个数组。首次调用此数据源方法时,数组中不会有该索引的图像。启动 Assets 调用,然后返回占位符图像。当 block 返回时,将占位符图像替换为 block 中返回的 Assets 图像。您可能需要使用 GCD 在主队列上执行此操作。

关于iphone - iOS - 从 block 中返回变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12630088/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com