0

我在核心数据中的两个实体之间有一个简单的有很多关系:

团队 <-------->> 游戏

当我将新的游戏托管对象插入上下文时,我需要在模型层查询团队实体的一些属性。但是,我使用awakeFromInsert的时候关系还没有设置,所以teamnil

// game.m
- awakeFromInsert
{
    [super awakeFromInsert];

    if ([self team] isActive] {
        //.... set game properties
    }
}

有没有办法在调用插入之前建立关系并在之后设置关系:

Game *newGame = [NSEntityDescription insertNewObjectForEntityForName:@"Game" 
                                            inManagedObjectContext:managedObjectContext];
[newGame setTeam:team];

在 Rails 中我会使用@team.games.build,但这在 Core Data 中似乎是不可能的。

4

1 回答 1

0

我怀疑您将需要一个自定义方法,例如+ (Game *)insertGameForTeam:(Team *)team并在那里进行team检查,或者- (void)willSave如果您需要将其保持在模型级别,则处理关系条件。

仅使用默认逻辑,对象在您完成插入之前不存在,并且在它存在之前您不能将其与另一个对象关联。

于 2012-05-24T17:03:19.023 回答