次のデータモデルがあります。
entityA<-->>entityB<<-->>entityC
entityD<-->>entityE
entityD と entityE は AC と関係がないことに注意してください。
私の DetailViewController は、管理対象オブジェクトからプロパティを取得し、新しい管理対象オブジェクトとして managedObjectContext に保存します。
現在、UILabels に既存のマネージド オブジェクトを次のように表示しています。
UILabel1.text = [self.selectedEntityB nameB];
UILabel2.text = [self.selectedEntityA nameA];
次に、保存アクションでコンテキストに保存します。
- (IBAction)save:(id)sender {
EntityD *newEntityD = [NSEntityDescription insertNewObjectForEntityForName:@"EntityD"
inManagedObjectContext:self.managedObjectContext];
[newEntityD setValue:self.UILabel2.text forKey:@"nameD"];
EntityE *newEntityE = [NSEntityDescription insertNewObjectForEntityForName:@"EntityE"
inManagedObjectContext:self.managedObjectContext];
[newEntityE setValue:self.UILabel1.text forKey:@"nameE"];
NSError *anyError = nil;
BOOL savedSuccessfully = [self.managedObjectContext save:&anyError];
if (!savedSuccessfully) {
}
}
これは、nameD と nameE を設定する場合に機能します。EntityD と EntityE の新しく作成されたオブジェクト間の関係を作成しようとしています。entityE から entityD への関係が toD であるとしましょう。保存アクションで試しました:
[newEntityE setValue:self.UILabel2.text forKey:@"toD"];
しかし、次のエラーが発生します:「NSInvalidArgumentException」、理由:「-[__NSCFString managedObjectContext]: 認識されないセレクターがインスタンス 0x10939fd00 に送信されました」
新しく作成されたオブジェクト間の関係を確立するにはどうすればよいですか?