Установка повторяющегося значения для атрибута путем подсчета связанных элементов в Core Data

Я пытаюсь установить значение атрибута на автоматически повторяющееся число на основе отношения к одному. У меня есть сущность под названием «Встреча», которая имеет отношение ко многим к «Раунду», и мне нужен атрибут, чтобы просто перейти к следующему значению и отразить количество раундов, в настоящее время связанных с сущностью Встречи. У меня есть соответствующая модель данных, представления таблиц и контроллеры массива, связанные и настроенные в построителе интерфейса, и все они работают нормально. Но когда я пытаюсь сослаться на свойство столкновения из моего подкласса Round для NSManagedObject, я получаю просто значение null.

ex:

- (void) awakeFromInsert{
    [super awakeFromInsert];    
    Encounter *enc = [self encounter];
    NSUInteger roundCount = [[enc rounds]count];
    [self setValue:[NSNumber numberWithUnsignedInteger:roundCount] forKey:@"roundNumber"];
    }

Я также попытался создать метод, который выполняет запрос на выборку в контексте управляемого объекта, но я не понял, как написать предикат, который только извлекает связанные записи для подсчета. Я уверен, что это что-то простое, чего мне не хватает, и я был бы признателен за любую помощь.


person cbpooh    schedule 07.06.2011    source источник


Ответы (1)


Я нашел решение, которое, кажется, работает хорошо. По сути, я создал подкласс NSArrayController и переопределил метод addObject, чтобы он выглядел следующим образом, где «Round» является именем подкласса NSManagedObject:

-(id)newObject{
    Round *round = (Round *)[super newObject];
    round.roundNumber = [NSNumber numberWithUnsignedInteger:[[self arrangedObjects]count]+1];
    return round;
}
person cbpooh    schedule 09.06.2011