设想:
假设我有一个名为的实体,该实体具有调用该实体Author
的一对多关系(反向关系)。如果我有一个现有的对象集合,我想在一个提取请求中对所有这些对象的关系进行故障排除。books
Book
author
Author
books
代码
这是我迄今为止尝试过的:
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"];
这也不会触发故障。这样做的适当方法是什么?