Необязательные отношения в Базовых данных (удаление и проверка) - PullRequest
1 голос
/ 09 февраля 2010

У меня есть базовая модель данных с двумя объектами: Game и ScoreTable. Игра имеет дополнительные отношения с ScoreTable. Я обычно проверяю, есть ли в игре ScoreTable, выполнив:

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

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

А когда я захочу удалить ScoreTable из игры, я просто

[context deleteObject: scoreTable];

Но в следующий раз, когда я проверяю, если ScoreTable == ноль, кажется, что он "перестал" быть нулем, как будто что-то есть, но пусто или что-то еще. Итак, что я делаю:

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

Почему-то это не так. Или это? Я не уверен, должен ли я проверить, если scoreTable == nil. Есть ли другой способ проверить, есть ли там объект?

1 Ответ

1 голос
/ 09 февраля 2010

Если проверка на ноль не удалась, это звучит так, как будто у вас не установлено обратное отношение от ScoreTable к игре. Если обратное отсутствует, то при удалении ScoreTable Core Data не может устранить какие-либо оборванные связи с этим объектом.

...