【发布时间】:2011-04-08 08:58:58
【问题描述】:
这是我的模型: http://www.girardet.ch/model.png
我的目标是检索所有符合这些条件的报价:
- 属于特定主题:主题的name_en属性
- 按相关性排序
- 按作者过滤(具有作者的别名属性)
这是我的代码:
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:predicate];
我收到“此处不允许使用多对多键”错误。
如果我改用这个谓词
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"theme.name_en=%@, @"mytheme"];
它运作良好,我可以循环访问我得到的 ThemeEntries 并获取我的所有报价......但它没有被作者过滤。
如何按作者过滤?
【问题讨论】:
标签: iphone objective-c core-data nspredicate