我有一个 UITableView 显示(医生图像,医生姓名)
在cellForRowAtIndexPath函数中,我正在获取图像,如下所示:
[NSURLConnection sendAsynchronousRequest:request
queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse * response,
NSData * data,
NSError * error) {
if (!error){
dispatch_async(dispatch_get_main_queue(), ^{
updateCell.DRImage.image = [[UIImage alloc] initWithData:data];
}];
问题是:当我快速向下滚动时,图像开始加载,并且正在加载近 100 张图像,然后当我单击行以显示医生详细信息时,直到所有图像都无法从服务器获取数据完成加载(直到所有异步请求完成)。
我正在使用以下代码来获取医生的详细信息:
SoapCall *Obj = [[SoapCall alloc] init];
NSString* Url=[[NSString alloc] initWithFormat:@"%@/doctorsDetails.php?i=%@" , ServerUrl ,DoctorDataFromTableView.Doctor_ID];
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
dispatch_async(queue, ^{
[Obj CallUrl:Url OnCompletion:^(NSMutableArray * Results , NSError * Error){
dispatch_async(dispatch_get_main_queue(), ^{
Nviews.text =[[Results objectAtIndex:0] objectForKey:@"numViews"];
NComments.text =[[Results objectAtIndex:0] objectForKey:@"totComments"];
});
}];
注意:SoapCall 是我为向服务器发出异步请求而制作的自定义类
我的问题是:有什么办法可以取消加载图像???
或者我可以在不同的线程中加载医生的详细信息???