0

私には2つのエンティティがあり、多対多の関係で関連付けられています。

Thing<<->>Tag

managedObjectContextにバインドされたエンティティ「Tag」を制御するNSArrayControllerが1つあります。配列コントローラーによって、add:およびremove:アクションを実行して、タグのインスタンスをコレクションに追加できます。

「Thing」エンティティを制御する2番目のNSArrayControllerがあり、これもmanagedObjectContextにバインドされています。

したがって、各コントローラーは、エンティティの すべてのインスタンスを管理します。

ここで、アレイコントローラによってすでに作成されている5つの「タグ」インスタンスと3つの「シング」インスタンスがあるとします。
個々のタグをモノにリンクしたいのですが。既存のものと既存のタグインスタンスの関係を作成したいだけです。

  • NSArrayControllerのaddObject:はそのための正しいメソッドですか?それとも、新しいmanagedObjectを作成しますか?

  • それは次と同等でしょうか:

    NSMutableSet *tags = [aThing mutableSetValueForKey:@"tags"];
    [tags addObject:existingTag];
    

  • タグ付けシステムのベストプラクティスはありますか?
4

1 に答える 1

1

(最新バージョンのXcodeでは)コアデータモデラーでエンティティを選択し、ファイルメニューに移動して、[新しいファイル]->[コアデータ]->[NSManagedObject]サブクラスを選択すると便利です。toManyリレーションシップにオブジェクトを追加するために必要なメンバーとメソッドを含むクラスを自動的に作成します。

それを行った場合は、thing追加するインスタンスを取得するだけでtag、宣言されたメソッドを呼び出すことができます。そのメソッドの名前は、生成されたヘッダーファイルから明らかです。

于 2012-04-05T14:47:32.997 に答える