我有一个包含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
。还有另一种检查那里是否有物体的方法吗?
答案 0 :(得分:1)
如果nil检查失败,则听起来你没有从scoreTable设置反向关系回到游戏。如果缺少逆,那么当您删除scoreTable时,Core Data无法清除与该对象的任何悬空关系。