UITableViewで[reloadData]を呼び出すのに最適なタイミングはいつですか? viewDidAppearまたはviewWillAppear?ビューがアンロードされると、基になるテーブルビューもアンロードされますか?UITableView reloadDataベストプラクティス
私が尋ねる理由は、私が見ている行動のためです。ビューがそのデータソースをリロードするように要求されたが、終了する前に割り当てが解除されたとします。シナリオは、UITabBarControllerを使用し、選択されているViewControllerとは別のビューにナビゲートします。では、viewWillAppearは呼び出されますが、viewDidAppearは呼び出されません(私は離れて移動しています)。
結果として、ViewControllerは(モデルデータとともに)割り当て解除されますが、viewWillAppearでreloadDataを呼び出すと、「解放されたインスタンス」エラーを引き起こす「cellForRow」および「numberOfRows」メソッドが呼び出されます。それは理にかなっていますか?ビューが表示されるよう要求されたときにモデルを変更できる場合は、通常はnilをチェックするコードを入れますか?
本当に種類は、達成しようとしているものによって異なります。 – Gobot
これは、私がiOSで見ている動作につながるものだと思います。ビューが表示されるたびに(顧客データがクライアントのセッションに保存される)、モデルデータが変更されるとします。 – Clay
正確に割り当て解除されるのは何ですか?別のタブに移動しただけでテーブルビューがメモリから削除されることはなく、ビューコントローラ自体はビューがアンロードされたために割り当てが解除されません。あなたはどんなクラッシュを見ていますか? – jrturton