Базовые данные, попробуйте использовать NSPredicate для фильтрации набора отношений toMany, но получите ошибку «ключ ко многим здесь не разрешен»

Вот модель, которая у меня есть: http://www.girardet.ch/model.png

Моя цель состоит в том, чтобы получить все цитаты с этими критериями:

  • принадлежат определенной теме: атрибут name_en порядка тем в
  • релевантность
  • отфильтрована по авторам (с псевдонимом Authors)

Вот мой код:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"ThemeEntries" inManagedObjectContext:_context];
[fetchRequest setEntity:entity];

NSSortDescriptor *sortDescriptor1 = [[NSSortDescriptor alloc] initWithKey:@"relevancy" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor1, nil];
[fetchRequest setSortDescriptors:sortDescriptors];

// predictate - filter
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"theme.name_en=%@ AND quotes.author.alias=%@",@"mytheme", @"myauthor"];

[fetchRequest setPredicate: предикат];

Я получаю ошибку «ключ ко многим здесь не разрешен».

Если я вместо этого использую этот предикат

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"theme.name_en=%@, @"mytheme"];

, он будет работать хорошо, и я могу перебрать ThemeEntries , которые я получаю и получаю все мои цитаты ... Но авторы не фильтруют их.

Что можно сделать, чтобы отфильтровать по авторам?

6
задан Ben 5 September 2010 в 03:59
поделиться