Ошибка CoreData с самообращением - PullRequest
0 голосов
/ 02 августа 2011

У меня есть сущность, которая связана с собой.Я объявил первое отношение ко многим по имени дети.И один к одному с именем parent.

children - Property - parent
parent   - Property - children

Затем я сгенерировал класс с помощью xcode.В частности, происходит сбой всякий раз, когда я пытаюсь добавить новые дочерние объекты.Это соответствующий фрагмент кода

- (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];

Ошибка с сообщением типа NSString addObject: нераспознанный селектор, которыйэто типичное сообщение, которое я получаю с слишком рано выпущенным объектом.Кажется, что примитивное значение для ключа дают другие объекты, а не NSSet.Я пытался с инспектором, но я не смог обнаружить ошибку.

1 Ответ

0 голосов
/ 02 августа 2011

это немного маловероятно, но пытались ли вы когда-нибудь заменить @ "children" на @ "Children"?Вы используете "Дети" здесь, кроме сегмента кода

...