我想从服务器下载很多图片。我怎样才能尽快做到这一点?目前我正在使用:
UIImage* myImage = [UIImage imageWithData:
[NSData dataWithContentsOfURL:
[NSURL URLWithString: @"http://example.com/image.jpg"]]];
这很痛苦。同时(异步)下载多个图像是否有任何速度增加,如果是这样,有多少是太多?
答案 0 :(得分:2)
您无法获得最佳连接数的明确答案,因为没有连接。它只取决于几个变量,如带宽,图像大小或您自己的耐心。你需要自己衡量这一点才能做到正确。
执行异步请求不会提高下载速度,但用户体验方式会更好。说真的,你应该考虑为任何需要超过一秒钟的下载做这件事。
我始终建议您使用ASIHTTPRequest,这样可以轻松实现queues和progress bars等内容。
以下是使用该库的异步请求中最简单的示例:
- (IBAction)grabURLInBackground:(id)sender
{
NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[request startAsynchronous];
}
- (void)requestFinished:(ASIHTTPRequest *)request
{
// Use when fetching text data
NSString *responseString = [request responseString];
// Use when fetching binary data
NSData *responseData = [request responseData];
}
- (void)requestFailed:(ASIHTTPRequest *)request
{
NSError *error = [request error];
}
更新:将不再支持此库。来自1:
“请注意,我不再在这个图书馆工作 - 你可以 我想考虑为新项目使用其他东西。 :)“
现在我在大多数项目中使用AFNetworking。