8

シナリオ:

エンティティと呼ばれる対多関係 (逆関係) を持つエンティティがあるAuthorとします。オブジェクトの既存のコレクションがある場合、1回のフェッチ要求でそれらすべての関係をフォールトしたいと考えています。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