Еще один способ сделать это (и я сам узнал об этом в результате вашего вопроса) - это использовать подзапросы.Проверьте это SO question
для более подробной информации.Вы можете использовать подзапросы следующим образом -
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SUBQUERY(%@, $str, SELF CONTAINS[cd] $str).@count != 0", words];
NSLog(@"%@", [array filteredArrayUsingPredicate:predicate]);
Кажется, это работает, поскольку я сам это проверял, но это также может быть таинственным и неясным способом, о котором упоминал Дейв, поскольку он не находит упоминания вРуководство по программированию предикатов.
Можно найти формат для SUBQUERY
here
.Это та же ссылка, что вы найдете в вопросе, связанном ранее.