【发布时间】:2014-02-20 11:48:37
【问题描述】:
我刚刚发现的怪癖,并想与这里的任何人确认这是否可以避免。基本上,如果我有一个非常简单的两个实体模型:
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:验证了这一点;结果是一样的
标签: core-data one-to-many relationship nsmanagedobject null