我正在开发一个新闻应用程序。我正在使用表视图来显示新闻。要从服务器下载数据,我正在使用sendAsynchronousRequest。取消重复请求NSURLConnection
NSOperationQueue *queue = [[NSOperationQueue alloc]init];
[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)
{
if ([data length] > 0 && error == nil)
{
downloadedItem = [GNNewsItems saveDataToModel:data];
if ([self.delegate respondsToSelector:@selector(receivedResponse:)])
{
[self.delegate performSelectorOnMainThread:@selector(receivedResponse:) withObject:downloadedItem waitUntilDone:NO];
}
}
else if ([data length] == 0 && error == nil)
{
// Data not downloaded
}
else if (error != nil)
{
// error
}
}];
到目前为止好。现在考虑一个案例:
- 用户打开应用程序。
- 表视图发送请求下载第一个单元格的内容。 让我们假设下载数据需要10秒。
- 用户将表格视图滚动到第5个单元格。
- 表视图发送第5个单元格的请求。
- 现在用户回到第一个单元,但单元1发送的初始请求的内容尚未下载。
- 表视图将发送第一个单元格的重复请求。
如何从表视图中取消重复的请求?