何時是在UITableView上調用[reloadData]的最佳時機? viewDidAppear或viewWillAppear?如果一個視圖被卸載,底層的tableview也會被卸載嗎?UITableView reloadData最佳實踐
我問的原因是由於我看到的一些行爲。假設一個視圖被要求重新加載它的數據源,但在視圖完成之前被釋放。一個場景將與一個UITabBarController並導航到不同的視圖,而不是被選中的ViewController。所以會發生什麼viewWillAppear被調用,但viewDidAppear沒有(因爲我導航了)。因此,ViewController會取消分配(連同其模型數據),但是如果我在viewWillAppear中調用reloadData,則會調用「cellForRow」和「numberOfRows」方法,從而導致「解除分配的實例」錯誤。那有意義嗎?您是否通常會在代碼中檢查nil,如果在請求顯示視圖時可以更改模型?
它真的有點取決於你想要達到的目標。 – Gobot 2012-03-14 19:40:49
嗯,我猜這種導致了我在iOS上看到的一些行爲。假設您的模型數據可以在每次出現視圖時更改(客戶數據存儲在客戶端的會話中)。 – Clay 2012-03-14 20:05:37
什麼是釋放?表視圖通常不會因爲您導航到另一個選項卡而從內存中刪除,並且視圖控制器本身不會因爲視圖被卸載而被取消分配。你看到什麼崩潰? – jrturton 2012-03-15 07:32:17