2009-09-04 3 views
3

私はappDelegateに設定済みのcoredataを持っていますが、最初にmainWindow.xibと対応するコントローラ+ビューをそのxibファイルにロードします。これらのコントローラは、適切にロードするためにmanagedObjectContextを持つ必要があります。 xibがアーカイブされないと、appDelegateでコードが実行されます。appdelegateをロードする前に私のmainWindow.xibをロードする

どのように私のcoredataを設定し、mainWIndow.xibをロードできますか?または、私のmainWindows.xibのアーカイブを解除する前にcoredataが適切に初期化されていることを確認しますか?

答えて

3

UIApplicationDelegateのサブクラスでawakeFromNibをオーバーライドしてコアデータを設定できます。このメソッドは、すべてのオブジェクトがnibファイルからアーカイブ解除された後、インスタンスが作業を開始する前に呼び出されます。インスタンスが実行を開始する前に、動作を調整する最後のチャンスとしてawakeFromNibを参照してください。

は守ってください。

  • awakeFromNibをオーバーライドします[super awakeFromNib]を呼び出す必要があり、さもなければ、あなたのスーパークラスは正しく初期化しない場合があります。
  • awakeFromNibへの呼び出しの順序は未定義であるため、awakeFromNibから同じNibの他のオブジェクトにメッセージを送信することはできません。これはまた、awakeFromNibを実行することが保証されていることを意味します。同じNibの他のオブジェクトにサービスが必要であり、メッセージを送信します。
+0

私のAppDelegateでawakeFromNibを使用すれば十分です。 – Ton

関連する問題