【发布时间】:2013-09-24 20:57:30
【问题描述】:
我有一个应用程序,每个屏幕都需要从 REST API 加载一些图像(甚至可能是 50 个)和一些 JSON。问题是用户可以在所有图像加载之前更改屏幕,并且在新屏幕出现时继续下载,这很糟糕。
我的最终目标是能够在屏幕更改时取消所有活动下载。即使图像尚未完成下载。
排队同时下载不超过 5 张图片也不错。
这是我现在下载图像的方式:
// global queue
NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:[self.data objectForKey:@"image_url"]]];
self.image = [UIImage imageWithData:imageData];
dispatch_async(dispatch_get_main_queue(), ^{
[[DataManager sharedManager] storeImageData:self.image forImageWithID:self.imageID];
[self.delegate downloadedImage:self];
});
【问题讨论】:
-
切换到使用
NSOperation进行数据下载,一种选择是开始使用AFnetworking。你永远不应该使用 initWithURL 选项,因为它不能让你对正在发生的事情有足够的控制。
标签: ios objective-c