gpt4 book ai didi

ios - objective-c 中一次有多个异步请求

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:18:20 27 4
gpt4 key购买 nike

我同时从网络服务器下载多个图像,我的问题是它们相互混淆了。

dispatch_async(dispatch_get_global_queue(0,0), ^{
NSData * data = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"website.com"]];
if (data == nil)
return;
dispatch_async(dispatch_get_main_queue(), ^{
cell.imageView.image = [UIImage imageWithData:data];
});
});

我从以下位置获得此代码:Getting Image from URL Objective C .

我该如何解决这个问题??还有什么办法可以加快下载速度吗?

最佳答案

您可以使用“AsyncImageView”类文件,它将同步加载图像并在图像加载时显示事件指示器

AsyncImageView 是类文件,它将在其中为每次调用创建连接,当图像数据下载完成后,它将为 ImageView 返回图像。如果图像已经在缓存中,则只返回图像而不创建连接。

您可以从以下链接下载“AsyncImageView”类文件:- https://www.dropbox.com/s/peazwjvky9fsjd7/Archive.zip

在.m文件中导入AsyncImageView类

  #import "AsyncImageView.h" 

在您的 tableview 单元格中的 indexpath 方法

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"SimpleTableCell";
UITableViewCell *cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(X, y, width, height)];

NSString *imageURL = [NSString stringWithFormat: @"www.xyz.image.png"];
AsyncImageView *async = [[AsyncImageView alloc]initWithFrame:CGRectMake(0, 0, width, height)];
[async loadImageFromURL:[NSURL URLWithString:imageURL]];
[imageView addSubview:async];
[cell addSubview:imageView];
return cell;
}

试试这个你的问题会解决。

关于ios - objective-c 中一次有多个异步请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15377013/

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