Сортировка основных данных в отношении один ко многим - PullRequest
1 голос
/ 05 октября 2010

Я установил модель данных, в которой Student Entity имеет отношение 1-ко-многим с Subject.У каждого Субъекта, который он посещает, есть несколько Классов.

Приведенный ниже код сортирует его по имени студента. Это просто.

    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Student" inManagedObjectContext:managedObjectContext];
    [fetchRequest setEntity:entity];

    // Edit the sort key as appropriate.
    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
    NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];

    [fetchRequest setSortDescriptors:sortDescriptors];

Я хочу отсортировать его так, чтобы он сортировался в следующий раз во время каждого занятия.Студент должен присутствовать.Таким образом, на дисплее будет «Студент» и отсортировано по времени следующего урока.Любые идеи?

Я пробовал следующее

    [fetchRequest setEntity:[NSEntityDescription entityForName:@"Student" inManagedObjectContext:managedObjectContext]];
    [fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"(subjects.time > %@)", [NSDate date]]];

    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"time" ascending:YES];
    NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
    [fetchRequest setSortDescriptors:sortDescriptors];

Я получаю сообщение об ошибке "ключ ко многим здесь не разрешен", затем я попытался установить setRelationshipKeyPathsForPrefetching: но это неполучить отношения ко многим субъектам.Есть идеи?

1 Ответ

0 голосов
/ 05 октября 2010

Это процесс:

Попробуй это. Получить студентов. Затем для каждого студента выберите «время» из класса, «больше или равно текущему времени» для студента (в формате предиката), отсортированное по «времени». Показать детали. Если вы поместите это в цикл, у вас есть ответ.

...