コア データ ストアにバインドされているアレイ コントローラーがコンテンツの読み込みを完了したことを知る最善の方法は何ですか?
コンテンツを持つ配列コントローラーに依存するいくつかのメソッド (つまり、awakeFromNib) がありますが、ほとんどの場合、そのオブジェクトで awakeFromNib が呼び出されているとき、配列コントローラーにはまだコンテンツがありません。
コントローラーにすべてのコンテンツが含まれていることを確認するまで、アクションを遅らせたいと考えています。
コア データ ストアにバインドされているアレイ コントローラーがコンテンツの読み込みを完了したことを知る最善の方法は何ですか?
コンテンツを持つ配列コントローラーに依存するいくつかのメソッド (つまり、awakeFromNib) がありますが、ほとんどの場合、そのオブジェクトで awakeFromNib が呼び出されているとき、配列コントローラーにはまだコンテンツがありません。
コントローラーにすべてのコンテンツが含まれていることを確認するまで、アクションを遅らせたいと考えています。
nib 内のすべてのオブジェクトで呼び出される順序が定義されていないため、問題が発生する可能性がある場所-windowDidLoad
と比較して、ウィンドウが完全に読み込まれた後に呼び出されます。-awakeFromNib
一般に、行っているすべての初期化、正しく動作するために UI が必要な部分、ユーザーがアクションを実行するまで遅延できる部分などを頭に入れておくことをお勧めします。たとえば、ユーザーが要求するまで開かれないウィンドウがある場合に備えて、Core Data fetch のようなタスクを最後の最後まで遅らせるのは良いことです。一方、永続化メソッドが機能するためにデータ ソースを事前に設定する必要があるアウトライン ビューのようなオブジェクトを操作する場合があります。
何をしているのか、どのような順序で実行する必要があるのかがわかったら、init、awakeFromNib、yyyWillLoad、または xxxDidLoad の組み合わせを選択できます。これにより、このような多くのバグが発生する前に対処できます。トラブルを起こす。
この問題に関する議論についてはTheocacaoを参照してください。