Отмените запрос и запросите теги, которые "self in% @", и затем вы можете выполнить операцию KVC с результирующим массивом, например:
NSArray *array = [results valueForKeyPath:@"@distinctUniionOfArrays.person"];
, которая даст вам результаты, которые вы ищетеза.Обратите внимание, что это было напечатано на моем iPad, поэтому возможны опечатки.
См. Документацию по этому вопросу
http://developer.apple.com/mac/library/iPad/index.html#documentation/Cocoa/Conceptual/KeyValueCoding/Concepts/ArrayOperators.html
Обновление
Извините, янеправильно прочитал вопрос.Я бы предложил попробовать подзапрос.Без доступа к вашей структуре данных трудно проверить это, чтобы получить его правильно, но этот код должен направить вас на правильный путь:
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"Person" inManagedObjectContext:moc]];
[request setPredicate:[NSPredicate predicateWithFormat:@"(SUBQUERY(self.tags, $tag, ALL $tag.name in %@).count > 0)", tagNameArray]];
NSError *error = nil;
NSArray *results = [moc executeFetchRequest:request error:&error];
NSAssert2(error == nil, @"Error fetchings tags: %@\n%@", [error localizedDescrption], [error userInfo]);