【发布时间】:2011-06-22 18:23:01
【问题描述】:
在创建核心数据实体(事件)期间,我正在创建与另一个实体(团队)的关系。这种关系从团队到事件是多对一的(一个团队,许多事件),并且从事件到团队具有反向关系。
团队>活动。
两个关系的删除规则都设置为“无效”。
以下代码块在每个事件的创建过程中创建一个新团队时在第一次填充时成功运行。但是,如果我随后删除一个事件并尝试重新添加它,则会检索现有的团队,但在示例的最后一行中尝试将团队对象添加到事件时代码会失败。报错如下:-[__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:我已更新问题以包含这些详细信息。
标签: objective-c ios core-data