コアデータエンティティ(イベント)の作成中に、別のエンティティ(チーム)との関係を作成しています。この関係は、チームからイベント(1つのチーム、多くのイベント)から多対1であり、イベントとチームの間に逆の関係があります。1つのエンティティから別のエンティティ、既存のエンティティにコアデータの関係を作成するにはどうすればよいですか?
チーム< ----- >>イベント。
両方のリレーションシップの削除ルールが 'Nullify'に設定されています。
以下のコードブロックは、各イベントの作成中に新しいチームが作成されたときに最初の人口で正常に動作します。ただし、イベントを削除して再追加しようとすると、既存のチームが取得されますが、この例の最終行でTeamオブジェクトをイベントに追加しようとするとコードが失敗します。エラーは次のとおりです。-[__NSCFDictionary managedObjectContext]: unrecognized selector sent to instance 0x699ed60
Eventオブジェクトと既に存在するTeamオブジェクトとの関係を作成する正しい方法は何ですか?
Team *currentTeam = self.team;
Team *newTeam = (Team *)[self loadTeamForNid:[NSNumber numberWithInteger: [teamNid integerValue]]];
// If the nid of the referenced team has changed,
if (![[[currentTeam nid] stringValue] isEqualToString:teamNid]) {
currentTeam = nil;
currentTeam = newTeam;
}
// If an event has not been set by this point, it does not exist in the CD store, and we need to create it.
if (currentTeam == nil) {
currentTeam = (Team *)[NSEntityDescription insertNewObjectForEntityForName:@"Team" inManagedObjectContext:[delegate managedObjectContext]];
[currentTeam populateTeamWithNode:[node nodeGet:teamNid]];
}
// TODO: This breaks on reload of an object
// self.team = currentTeam;
[self setValue:currentTeam forKey:@"team"];
エラーは何ですか?関係には逆数がありますか?削除ルールとは何ですか? – benzado
@Benzado:これらの詳細を含めるように質問を更新しました。 – markdorison