Необязательные отношения CoreData к-многим никогда не могут быть nil?
Quirk, который я только что обнаружил, и хотел бы подтвердить с кем-нибудь здесь, можно ли это избежать. В принципе, если у меня есть очень простая модель сущности:
![enter image description here]()
С отношением to-many между Entity1
и Entity2
. Связь является необязательной, с нулевым значением как правило удаления с обеих сторон. Однако, если я вставляю новый Entity1
, значение отношения children
будет пустым, а не nil
:
NSManagedObject *object = [NSEntityDescription
insertNewObjectForEntityForName:@"Entity1"
inManagedObjectContext:[self managedObjectContext]];
assert([object valueForKey:@"children"] != nil);
Кроме того, я не могу явно установить отношение к nil
:
[object setValue:nil forKey:@"children"];
assert([object valueForKey:@"children"] != nil);
Я проверил это в новом минимальном проекте, и это, по-видимому, является настоящей реализацией. Проблема в том, что я хотел бы различать значение nil
(представляющее в настоящее время неизвестное) и пустое множество (истинно отношение к нулю). Действительно ли CoreData поддерживает это вообще разумным образом? В настоящее время это не так, значит, мне придется найти другой (менее прямой) способ представления моей модели.
Спасибо,
J
Ответы
Ответ 1
Короткий ответ - нет. Вы всегда получите пустой набор. Если вам нужно знать, полностью ли реализована структура объекта (моя догадка о том, какова ваша цель), тогда вы хотите установить атрибут объекта, чтобы сказать, полностью ли он реализован или нет.