私は Core Data を使用してドキュメント ベースのプロジェクトを作成していますが、Cocoa は初めてではありませんが、Core Data を利用するのはこれが初めての試みであるため、単に概念的な問題に遭遇しました。私が達成しようとしていることは比較的単純です。新しいドキュメントを起動するたびに、「ルート」オブジェクトとして機能するモデル オブジェクトの 1 つの新しいインスタンスを作成したいと考えています。
私が行ったことは、NSObjectController を xib に追加し、そのモードをエンティティ名 (提供された正しいエンティティ名を使用) に設定し、「Prepares Content」をチェックして、モデル キー パスとして managedObjectContext を使用してその管理対象オブジェクト コンテキストをファイルの所有者にバインドすることです。 . これをテストするために、メイン ウィンドウのタイトルをオブジェクト コントローラーにバインドし、コントローラー キーを選択項目として、モデル キー パスをエンティティ内のキーの 1 つとして使用しました。
プログラムでルート オブジェクトを作成できることはわかっていますが、Apple が推奨するメディエーター パターンを採用しようとしています。「メディエーターパターンの採用」セクションの下の部門従業員チュートリアルの指示を見ましたが、詳細な手順はまさに私が行ったと信じているものです.
何かご意見は?
編集:おそらく、問題を正しく述べていませんでした。モデルは Core Data で作成され、必要に応じて関係が設定されます (「ルート」、子、および葉を使用して、1 対 1 の親関係、対多子関係、および isLeaf ブール属性を使用)。私の問題は、新しいドキュメントが起動されるたびに、このルート オブジェクトがシングルトンとしてインスタンス化されるようにすることです。ルート オブジェクトと現在のドキュメントの間には正確に 1 対 1 の関係が存在する必要があります。ルート オブジェクトは常に存在し、ユーザーの操作なしで使用可能である必要があり、作成されてルートにアタッチされた子ノードはデータ オブジェクトです。アプリケーションによって使用および操作されるもの。
上記の機能をプログラムで実装しましたが、Core Data の原則に従って、メディエーター パターンを完全に採用し、アプリケーション ロジック内のデータ オブジェクトの作成を管理したくありません。