gpt4 book ai didi

iphone - 花时间将图像从URL加载到UIImageview

转载 作者:行者123 更新时间:2023-12-01 18:19:28 25 4
gpt4 key购买 nike

我正在使用此代码显示从URL到UIImageview的图像

UIImageView *myview=[[UIImageView alloc]init];

myview.frame = CGRectMake(50, 50, 320, 480);

NSURL *imgURL=[[NSURL alloc]initWithString:@"http://soccerlens.com/files/2011/03/chelsea-1112-home.png"];

NSData *imgdata=[[NSData alloc]initWithContentsOfURL:imgURL];

UIImage *image=[[UIImage alloc]initWithData:imgdata];

myview.image=image;

[self.view addSubview:myview];

但是问题在于,它花费很长时间在imageview中显示图像。

请帮我...

有什么方法可以加快这个过程...

最佳答案

我对自己的问题 Understanding the behaviour of [NSData dataWithContentsOfURL:URL] inside the GCD block 给出的答案确实很有意义,因此请确保如果您在GCD中使用[NSData dataWithContentsOfURL:URL](就像如今很多开发人员所做的那样)并不是下载文件/图像的好主意。倾向于以下方法(您可以使用NSOperationQueue)。

使用[NSURLConnection sendAsynchronousRequest:queue:completionHandler:加载图像,然后使用NSCache防止一次又一次下载同一图像。

正如许多开发人员所建议的那样,使用 SDWebimage ,它确实包含上述​​下载图像文件的策略。您可以加载任意数量的图像,并且根据该代码的作者不会多次下载相同的URL。

编辑:
[NSURLConnection sendAsynchronousRequest:queue:completionHandler:上的示例

NSURL *url = [NSURL URLWithString:@"your_URL"];
NSURLRequest *myUrlRequest = [NSURLRequest requestWithURL:url];
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[NSURLConnection sendAsynchronousRequest:myUrlRequest queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)
{

if ([data length] > 0 && error == nil)
//doSomething With The data

else if (error != nil && error.code == ERROR_CODE_TIMEOUT)
//time out error

else if (error != nil)
//download error
}];

关于iphone - 花时间将图像从URL加载到UIImageview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18506744/

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