具有自引用关系的CoreData错误

时间:2011-08-02 06:57:07

标签: objective-c core-data entity-relationship

我有一个与自己有关系的实体。 我宣布了一个名为children的第一对多关系。并且一对一命名为父母。

children - Property - parent
parent   - Property - children

然后我用xcode生成了这个类。特别是每当我尝试添加新的Children对象时它都会失败。这是相关的一段代码

- (void)addChildrenObject:(WZMDXProperty *)value {    
    NSSet *changedObjects = [[NSSet alloc] initWithObjects:&value count:1];
    [self willChangeValueForKey:@"children" withSetMutation:NSKeyValueUnionSetMutation usingObjects:changedObjects];
    [[self primitiveValueForKey:@"children"] addObject:value]; // <<--FAILS HERE !!!!
    [self didChangeValueForKey:@"children" withSetMutation:NSKeyValueUnionSetMutation usingObjects:changedObjects];
    [changedObjects release];
}

这是我创建实体的方式

NSEntityDescription *entityProperty = [[self.managedObjectModel entitiesByName] objectForKey:@"Property"];
    WZMDXProperty *p = [[WZMDXProperty alloc] initWithEntity:entityProperty insertIntoManagedObjectContext:self.managedObjectContext];

它失败了,像NSS​​tring addObject这样的消息:无法识别的选择器,这是我过早发布的对象获得的典型消息。 似乎key的原始值给出了其他对象而不是NSSet。 我试过检查员,但我无法发现错误。

1 个答案:

答案 0 :(得分:0)

这有点不太可能,但是,你有没有试过用@“Children”取代@“孩子”? 你在这里使用“儿童”,除了代码段