-1

「対多」関係のために NSMutableSet からコア データ オブジェクトを追加または削除する方法を示す多くの投稿を見てきました。ただし、既存のものをどのように更新しますか? 具体的には、ViewController で 1 対多の関係の「多」側からオブジェクトのテーブルを表示しています。ユーザーがテーブルの行 (これらのオブジェクトの 1 つを表す) をクリックすると、この特定のオブジェクトを prepareForSegue メソッドを介して別の ViewController に送信したいと考えています。関係の「一方」の側でこれを行うのに問題はありません。しかし、関係の「多」側でそれを行うのに問題があります。関係の「多」側から別のViewControllerにオブジェクトを送信し、そのVCにそれを更新してコアデータに保存する方法の例を投稿してください。

どうもありがとうございました!!!!

4

2 に答える 2

1

あなたが関係を持っていて、それを照会するならば、あなたはセットを取り戻します。

セットに含まれるオブジェクトを変更するのではなく、このセットを変更する場合は、次の便利な方法を使用できます。

例えば

NSMutableSet *relatedObjects = [object mutableSetValueForKey:@"relationshipName"];
[relatedObjects addObject:anotherRelatedObject];

このようにして、不変のセットだけでなく、関連するオブジェクトの可変のセットを取得し、行った変更はすべて保存時に保持されます。

于 2013-01-27T11:21:53.887 に答える
1

問題のオブジェクト自体を更新するだけです。これ以上簡単なことはありません。

NSSet *employees = department.employees;
Employee *bride = [employees lastObject];
NSLog(@"%@", bride.lastName); // "Johnson"
bride.lastName = @"Smith";
[self.managedObjectContext save:nil];

NSLog(@"%@", [department.employees.lastObject lastName]); // "Smith"
于 2013-01-27T10:53:27.363 に答える