【发布时间】:2014-12-16 20:52:43
【问题描述】:
在我的第一个屏幕上,我想加载和缓存几个 JSON 调用和图像调用。如果用户在完成之前点击了第二个视图控制器, 这些电话会被取消还是会结束?
AFNetworking 中的示例调用:
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
NSString *arcURL = [NSString stringWithFormat:@"%@/arc/v1/api/locations/%i/mobile_home",MYHost(), locationID];
[manager GET:arcURL parameters:nil success:^(NSURLSessionDataTask *operation, id responseObject) {
// on return will get written to a cache
SDWebImage 中的示例调用
NSURL *imageURL=[[NSURL alloc] initWithString:[mi objectForKey:@"instore_image_url"]];
SDWebImageManager *manager = [SDWebImageManager sharedManager];
[manager downloadWithURL:imageURL
options:0
progress:^(NSInteger receivedSize, NSInteger expectedSize)
{
// progression tracking code
}
completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished)
{
if (image)
{
// image downloaded - just writing to cache
}
}];
}
【问题讨论】:
-
一般情况下你负责停止它,其余的取决于实现。
-
您可以通过设置断点或 NSLog 调用来检查
-
所以切换 ViewController 会导致它们继续运行?我基本上是在预加载和写入缓存,所以需要它们,但那时不需要。
-
我认为调用会被执行,因为它们是异步的并且在后台线程上运行。
标签: ios afnetworking afnetworking-2 nsoperationqueue sdwebimage