管理対象オブジェクト ID の配列がある場合は、単一のフェッチ リクエストですべてのオブジェクトをフェッチできます。
NSArray *objectIDs = ...;
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"YourEntityName"];
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"SELF IN %@", objectIDs];
NSArray *result = [context executeFetchRequest:fetchRequest error:&error];
ただし、result
配列で返されるオブジェクトの順序は、提供されたオブジェクト ID の順序と同じである必要はありません。つまり、 がresult[i]
ID のオブジェクトであるとは限りませんobjectIDs[i]
。
必要に応じて、この回答のコードを使用して、オブジェクト ID に従って結果の配列を並べ替えることができます: Sorting NSArray by NSOrderedSet。