我在这里看过这个代码,
https://www.raywenderlich.com/67081/cookbook-using-nsurlsession
NSURLSessionDownloadTask *downloadPhotoTask = [[NSURLSession sharedSession]
downloadTaskWithURL:url completionHandler:^(NSURL *location, NSURLResponse *response, NSError *error) {
UIImage *downloadedImage = [UIImage imageWithData:
[NSData dataWithContentsOfURL:location]];
}];我希望这段代码两次连接到服务器,所以图像加载速度很慢。我只想知道如何通过只点击服务器一次就可以使用NSURLSessionDownloadTask下载图像。
发布于 2016-05-19 18:05:56
我希望这段代码两次连接到服务器,所以图像下载速度很慢。
您显示的代码会让而不是连接到服务器并下载两次,不过很容易看出为什么会这样做。
因此,如果您正在寻找一个原因,为什么您的下载速度慢,并认为它可能是由于双重下载,那么它不是。
如果您刚才误解了代码,那么这里的代码概述了它的操作方式:
NSData将本地文件的内容读入dataWithContentsOfURL:对象。该方法也可用于读取远程URL,这就是为什么快速查看可能会导致有人认为这是下载的重复,但事实并非如此--它正在读取本地文件。您可能会问,为什么使用临时文件而不是直接作为NSData对象传递的URL内容?答案是,可以使用数据任务,您需要研究下载的利弊和数据任务的文档。
欲了解更多细节,请阅读苹果的NSURLSession类引用和URL会话编程指南。
HTH
发布于 2016-05-19 14:38:40
它非常简单的使用afnetworking ..
AFHTTPRequestOperation *requestOperation = [[AFHTTPRequestOperation alloc] initWithRequest:urlRequest];
requestOperation.responseSerializer = [AFImageResponseSerializer serializer];
[requestOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Response: %@", responseObject);
_imageView.image = responseObject;
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Image error: %@", error);
}];
[requestOperation start];https://stackoverflow.com/questions/37325738
复制相似问题