1

與後隨訪:Can AFNetworking return data synchronously (inside a block)?異步數據下載程序中斷

一個在該職位的意見是:

訣竅異步編程是打破程序, 同步假設數據在你要求的時候有。 而是使用異步,當你要求什麼時,你會給它一個 回調,以便在數據最終準備就緒時執行。在這種情況下,您將 調用JSON操作的成功塊中的塊。 而不是返回數據的方法,它告訴我們在完成數據下載後應該怎麼做。

儘管我在iOS上使用GCD和異步下載,但我並不真正瞭解如何在使用異步編程時實現此「程序中斷」。

例如,假設我需要下載一些JSON數據,其中包含大量數據,包括圖像URL。之後我將不得不下載實際的圖像。

表中的每個單元格都從JSON /下載的圖像中提取數據。在這種情況下,我將如何執行這個程序性休息?

回答

1

雖然您的數據尚未到達,但您的表視圖dataSource會告訴其表視圖它有零行,並顯示一個微調框。當回調被觸發時,您將數據存儲在某個地方,移除微調器,然後致電[tableView reloadData]。基本上,這就是它的全部。

+0

同意。雖然'reloadData'有時是合適的(例如,您通過JSON加載了表的所有數據),但是在處理表視圖時,您只需更新相關的indexPath,或者甚至可以對該「UITableViewCell」進行特定的控制。 – Rob