我需要提供一些信息的請求,這些信息將用於填充表格視圖單元格的文本字段。然而該單元可以在請求結束之前重新使用。我怎樣才能將AFNetworking GET請求與uitableview單元相關聯,以便能夠在prepareForReuse中取消它?AFNetworking:如何將異步JSON請求與UITableViewCell關聯?
(如果我沒有使用AFNetworking這將是一個沒有腦子。)
我需要提供一些信息的請求,這些信息將用於填充表格視圖單元格的文本字段。然而該單元可以在請求結束之前重新使用。我怎樣才能將AFNetworking GET請求與uitableview單元相關聯,以便能夠在prepareForReuse中取消它?AFNetworking:如何將異步JSON請求與UITableViewCell關聯?
(如果我沒有使用AFNetworking這將是一個沒有腦子。)
我不知道爲什麼AFNetworking產生很大的差別的問題。
我的解決方案是:
我會傾向於讓網絡請求,在大多數情況下完成,但如果你使用的數據會話的任務,你可以存儲NSURLSessionDataTask在細胞並調用它cancel
在prepareForReuse。 AFNetworking中可能還有其他選項,不容易取消。
如果your're關聯在tableview中每個單元的AFHTTPRequestOperation,你可以管理並取消您的GET請求如下:
@property (nonatomic, strong) AFHTTPRequestOperation *operation;
- (void)prepareForReuse{
[super prepareForReuse];
[self.operation cancel];
}
AFHTTPRequestOperation根本的NSOperation的子類。
你不能。 UITableViewCell是非常臨時的。它不涉及你的表的特定行;它將被重用於不同的行。以下是您的操作:
請注意,包含數據的行可能與啓動請求時包含數據的行不同。例如,用戶可能已添加或刪除表格中的項目,或更改了排序順序。
這是一種通常需要的方法,但是我被壓入使用AFNetworking是一種一站式解決方案,適用於所有計算。 –
所以你實際上不會取消網絡請求? –
我傾向於不會盡管我承擔相當小的要求,但您的情況可能會有所不同。另一個因素是,單元格很有可能會回滾,因此存儲或緩存完成的結果將是我常用的方法。 –