У NSArray отстуствует метод поиска по предикату. Есть filteredArrayUsingPredicate: и filterUsingPredicate: (ну да, длинные имена -- наше все) есть, а какого-нибудь findFirstUsingPredicate: - нету.
вот и плодятся по коду кусочки вида
id object = nil;
for (id x in array)
if (condition(x))
break;
Казалось бы, четыре строчки вместо одной, да и добавить такой метод -- не проблема, но раздражает, что нет "искаропки".
Да и предикаты в obj-c -- это нечто.
Пытались сделать LINQ, а получили
недо-SQL в стрингах.
Справедливости ради стоит заметить, что в языке есть "блоки" (которые почти лямбды из С++11), и предикаты можно создавать на их основе.