核心数据中的可选关系(删除和检查)

时间:2010-02-09 07:56:00

标签: core-data null entity-relationship

我有一个包含2个实体的Core Data模型:Game和ScoreTable。游戏与ScoreTable具有可选关系。我通常会通过以下方式检查游戏是否有ScoreTable:

NSManagedObject *scoreTable = [myGame valueForKey: @"scoreTable"];

if (scoreTable == nil) {
   // wtv
}

当我想从游戏中删除一个ScoreTable时,我只是

[context deleteObject: scoreTable];

但是下次我检查scoreTable == nil时,它似乎“停止”为零,好像有什么东西,但是空的,或者什么的。所以,我正在做的是:

[myGame setValue: nil forKey: @"scoreTable"];

不知何故,这感觉不对。或者是吗?我不确定是否应该检查scoreTable == nil。还有另一种检查那里是否有物体的方法吗?

1 个答案:

答案 0 :(得分:1)

如果nil检查失败,则听起来你没有从scoreTable设置反向关系回到游戏。如果缺少逆,那么当您删除scoreTable时,Core Data无法清除与该对象的任何悬空关系。