通常、XCodeが提供するテンプレートには、managedObjectContextが付属していAppDelegateます。managedObjectContextアレイコントローラの参照をmanagedObjectContextinにバインドする必要がありAppDelegateます。
このためにはAppDelegate、xib内のオブジェクトを作成する必要があります。つまり、オブジェクトがまだ存在しない場合です。(オブジェクトライブラリからオブジェクトプレースホルダーをドラッグし、そのクラスをとして作成しますAppDelegate)
これによりAppDelegate、そのxib内のバインディングが表示されます。
次のステップは、実際にmanagedObjectContextをバインドすることです。アレイコントローラーを選択し、バインディングインスペクターに移動します。パラメータセクションで、ドロップダウンから[App Delegate]を選択し、[Bindto]をオンにします。[モデルキーパス]フィールドに。を入力しself.managedObjectContextます。これで、接続インスペクターにも接続が表示されます。
更新:
新しいAppDelegateオブジェクトを作成するプロセスは、メインのnibファイルにまだ存在していない場合にのみ実行されます(ただし、生成されたスタブには常にAppDelegateメインのnibファイルにオブジェクトがあります)。
非メインnibファイルの場合、上記のアプローチに従うと、デリゲートAppDelegateではない新しいオブジェクトが作成されます。NSApplication'sこれは、各ペン先で提供されるアプリケーションオブジェクトプロキシのデリゲートアウトレットを接続することで解決できますが、AppDelegateオブジェクトは同じではありません。
その結果、2つの異なるmanagedObjectContextが同じストアと通信します。各ステップで変更を保存すると、これは正しく機能するように見えるかもしれませんが、これは私たちが望んでいることではありません。
適切なAppDelegateオブジェクト、つまりメインのnibファイルで使用されているオブジェクトを取得するには、次のようにします
。-新しいオブジェクトを作成する代わりに、アプリケーションを介してアレイコントローラーのをデリゲートに直接AppDelegateバインドします。managedObjectContextつまり、バインドするオブジェクトはアプリケーションオブジェクトになり、使用されるキーパスはになりますself.delegate.managedObjectContext。