appdelegateが私のmainWindow.xibをロードする前に、コアデータをセットアップする

cocoa-touch core-data iphone mainwindow xib

appDelegateでcoredataを設定しましたが、最初にmainWindow.xibとそれに対応するコントローラビューをそのxibファイルにロードします。 これらのコントローラは、正しくロードするためにmanagedObjectContextを持つ必要があります。 そしてxibが展開された後、それは私のappDelegateのコードを実行します。

コアデータを設定してからmainWIndow.xibをロードする方法を教えてください。 または、mainWindows.xibを展開する前に、コアデータが正しく初期化されていることを確認してください。

  3  1


ベストアンサー

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

観察する:

  • awakeFromNib`をオーバーライドするとき、あなたは [super awakeFromNib] `を呼ばなければなりません、さもなければあなたのスーパークラスは正しく初期化されないかもしれません。

  • awakeFromNib`の呼び出し順序は未定義なので、 awakeFromNib`内から同じNibから他のオブジェクトにメッセージを送信することは絶対にできません。 おまけとして、これは `awakeFromNib`があなたのサービスを必要としそしてあなたにメッセージを送るのを同じNib内の他のどのオブジェクトの前にも実行することが保証されることを意味します。

3


タイトルとURLをコピーしました