我正在開發一個新聞應用程序。我正在使用表視圖來顯示新聞。要從服務器下載數據,我正在使用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發送的初始請求的內容尚未下載。
- 表視圖將發送第一個單元格的重複請求。
如何從表視圖中取消重複的請求?