在创建Core Data实体(Event)期间,我创建了与另一个实体(Team)的关系。这种关系从团队到事件(一个团队,许多事件)是多对一的,并且事件与团队之间存在反向关系。如何创建从一个实体到另一个实体的核心数据关系?
团队< ----- >>事件。
两个关系的删除规则都设置为'Nullify'。
当在创建每个事件期间创建新团队时,下面的代码块可成功地在第一群体上成功运行。但是,如果我然后删除了一个事件并尝试重新添加该事件,则会检索现有的团队,但在尝试将Team对象添加到该示例最后一行中的事件时代码失败。错误如下:-[__NSCFDictionary managedObjectContext]: unrecognized selector sent to instance 0x699ed60
在事件对象与已存在的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