Quirk, который я только что обнаружил, и хотел бы подтвердить с кем-нибудь здесь, можно ли это избежать. В принципе, если у меня есть очень простая модель сущности:
С отношением 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