8

设想:

假设我有一个名为的实体,该实体具有调用该实体Author的一对多关系(反向关系)。如果我有一个现有的对象集合,我想在一个提取请求中对所有这些对象的关系进行故障排除。booksBookauthorAuthorbooks

代码

这是我迄今为止尝试过的:

NSArray *authors = ... // array of `Author` objects
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Book"];
fetchRequest.returnsObjectsAsFaults = NO;
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"author IN %@", authors];

执行此获取请求不会导致数组中books对象的关系authors出现故障(通过日志记录检查)。

我也尝试过以另一种方式执行获取请求:

NSArray *authors = ... // array of `Author` objects
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Author"];
fetchRequest.returnsObjectsAsFaults = NO;
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"SELF IN %@", authors];
fetchRequest.relationshipKeypathsForPrefetching = @[@"books"];

这也不会触发故障。这样做的适当方法是什么?

4

0 回答 0