gpt4 book ai didi

ios - Mutablearray 中的 UIImage 未显示

转载 作者:行者123 更新时间:2023-11-29 05:01:00 25 4
gpt4 key购买 nike

  NSUInteger index, count = [delegate.thumbArr count];
for (index = 0; index < count; index++)
{

NSString *tPath = [[NSString alloc] init];
tPath = [delegate.thumbArr objectAtIndex:index];
NSURL *turl = [NSURL URLWithString:tPath];

UIImage *_thumb =[self getImage:turl];

// Adding images to the NSMutableArray TViews
[TViews addObject:_thumb];

UIImage *_thumb2 =[TViews objectAtIndex:index];
NSLog(@"Our Image is= %@", _thumb2 );

[thumbView.imageView setImage:_thumb2];


}

- (UIImage*)getImage:(NSURL*)myurl
{


SDWebImageManager *manager = [SDWebImageManager sharedManager];
UIImage *cachedImage = [manager imageWithURL:myurl];

if(!cachedImage)
{
[manager downloadWithURL:myurl delegate:self];
}

else
return cachedImage;

}

- (void)webImageManager:(SDWebImageManager *)imageManager didFinishWithImage:(UIImage *)image
{
}

但问题是当我尝试记录时图像没有消失...

NSLog(@"Our Image is= %@", _thumb2 ); 给我 NULL...帮我解决这个问题...

最佳答案

首先,您的 getImage 方法中存在逻辑错误:

- (UIImage*)getImage:(NSURL*)myurl {

SDWebImageManager *manager = [SDWebImageManager sharedManager];
UIImage *cachedImage = [manager imageWithURL:myurl];

if(!cachedImage) {
[manager downloadWithURL:myurl delegate:self];
}
else {
return cachedImage;
}

//execution will get here if there is no cached image; the "returned" value will be nil
}

如果没有可用的缓存图像,那么您的 getImage 调用将返回 nil,这当然不会正确显示。

现在我不知道如何使用 SDWebImageManager 的确切细节,但从您的代码来看,如果本地副本不能立即在缓存中可用。这意味着您不能调用 getImage 并期望立即返回可以显示的图像。

您有几个选项可以解决此问题:

  1. 实现您已有的 webImageManager:didFinishWithImage: 方法来处理图像管理器异步下载的图像,并重构您的代码以使用它。

  2. 摆脱 SDWebImageManager 并使用同步请求来下载图像(如果缓存中没有该图像)。

关于ios - Mutablearray 中的 UIImage 未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6972608/

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