使用NSFetchRequest获取关系的所有结果

时间:2014-05-26 15:53:04

标签: ios objective-c nsfetchrequest

我有两个实体:作者和书。我想获得特定作者的所有书籍清单。

以下是我使用的代码:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Books"];
[fetchRequest setPredicate[NSPredicate predicateWithFormat:@"ANY author == %@", author]];
books = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy];

但是,这只会返回作者的一本书。

如何获得特定作者的所有书籍?

我读了很多其他主题,但似乎没有一个解决方案适合我。

谢谢!

2 个答案:

答案 0 :(得分:2)

你有没有试过这个?

NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Books"];
request.predicate = [NSPredicate predicateWithFormat:@"author = %@", author ];
NSArray *matches = [moc executeFetchRequest:request error:nil];

答案 1 :(得分:1)

问题出在数据模型中:关系作者 - >本书应该是“To many”而不是“To one”。

更新关系后,我不得不在模拟器中重新安装应用程序,但之后一切正常。