-1

こんにちは皆さん、以下のコアデータの例について本当に助けが必要です-objective-C IOS

Entity1: 個人属性: 名前

Entity2: 言語属性: LanguageName

例: 名前: ジョンは話せます 言語名: 英語、韓国語、日本語

例 2 は LanguageName になります: スペイン語、英語、韓国語はジョン、エイミー、アシュリーによって話されます

最初の質問は、xcdatamodel でその関係をどのように作成するかです。

2 番目の質問は、たとえば John が英語、韓国語、日本語を話すことをコア データに格納する方法です。

3番目は、そのデータを動的に表示する方法です。

languageName によって生成されたボタンがあり、それをクリックすると、その言語を話すすべての人をテーブルビューに表示する必要があるとしますか?

ビットをシフトして各ビットにスポーツを格納し、while ループを使用して一致させる別のアプローチを試しましたが、しばらく読んでいて、多対多の関係がより適しているようです。

どんな助けでも大歓迎です、事前に感謝します!

どこから始めればいいのかわからないので、コードは提供しませんでした。

4

1 に答える 1

0

多対多の関係を作成するには、2 対多の関係を作成し、それらを相互に反転させます。

あなたの場合、次のことができます

  1. speaksに関係を追加しPerson
    • destinationに設定Language
    • typeに設定To Many
  2. spokenByに関係を追加しLanguage
    • destinationに設定Person
    • inverseに設定speaks
    • typeに設定To Many

. inverse_ たとえば、マンディは英語とスペイン語を話すことができます。彼女が話す言語をコア データ ストアに保存するには、次の手順を実行します。

// mandy, english and spanish are all NSManagedObject objects
mandy.speaks = [NSSet setWithObjects:english, spanish, nil];
NSLog(@"%@", [english.spokenBy containsObject:mandy] ? @"YES" : @"NO"); // YES

NSManagedObjectContextObjectsDidChangeNotification管理対象オブジェクトが変更されたとき (つまり、挿入、削除、または更新) に通知を受け取ることができます。


詳細については、このApple ドキュメントを参照してください。

于 2016-06-04T09:01:51.437 に答える