我刚刚发现一个奇怪的问题,并想向这里的任何人确认是否可避免。基本上,如果我有一个非常简单的两个实体模型:
Entity1
和Entity2
之间有一个一对多的关系。该关系是可选的,在双方都使用nullify作为删除规则。然而,如果我插入一个新的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
-primitiveValueForKey:
进行了验证;结果是相同的。 - Jonathan Crooke