Необязательные отношения в Core Data (удаление и проверка)

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

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

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

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

[context deleteObject: scoreTable];

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

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

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


person Tiago Fael Matos    schedule 09.02.2010    source источник


Ответы (1)


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

person Marcus S. Zarra    schedule 09.02.2010