Я не уверен, что понимаю вопросы, но не думаю, что возможно сделать то, что вы спросили, по крайней мере, не так, как сформулировано.Не похоже, что можно было бы проверить только пять объектов во взаимосвязи и остановиться на этом, возвращая любое количество совпадений или ни одного вообще, даже если их больше в базе данных.
Однако, и я думаю, что это может быть то, к чему вы пришли, возможно можно найти пять объектов, которые оба находятся в наборе items
и имеют хотя бы один log
с typeID == 3
.Это можно сделать аналогично предложению E.Coms, за исключением того, что вам нужен подзапрос для обработки отношений.(Я предполагаю, что журналы - это отношение «многие ко многим», «один ко многим» или «многие ко многим»).
Обратите внимание, что следующий код не был протестирован:
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Entity name" inManagedObjectContext:context];
[fetchRequest setEntity:entity];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF IN %@ AND SUBQUERY(logs, $log, $log.typeID == 3).@count != 0", items];
[fetchRequest setPredicate:predicate];
fetchRequest.fetchLimit = 5;
NSError *error = nil;
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];
if (fetchedObjects == nil) {
}