我有一个简单的核心数据中2个实体之间有很多关系:
团队< ------->>游戏
当我将新游戏托管对象插入上下文时,我需要在模型层查询团队实体的一些属性。但是,当我使用awakeFromInsert
时尚未设置关系,因此team
为nil
。
// game.m
- awakeFromInsert
{
[super awakeFromInsert];
if ([self team] isActive] {
//.... set game properties
}
}
有没有办法在调用insert之前建立关系并在之后设置关系:
Game *newGame = [NSEntityDescription insertNewObjectForEntityForName:@"Game"
inManagedObjectContext:managedObjectContext];
[newGame setTeam:team];
在rails中我会使用@team.games.build
,但这在核心数据中似乎不可能。
答案 0 :(得分:0)
我怀疑您需要自定义方法(例如+ (Game *)insertGameForTeam:(Team *)team
)并在那里进行team
检查,或者如果您需要将其保留在模型中,请处理- (void)willSave
中的关系条件水平。
仅使用默认逻辑,在完成插入之前,该对象不存在,并且在它存在之前无法将其与另一个对象关联。