Что вы подразумеваете под "без использования петель"?Значение вы не пишите цикл for, или вы имеете в виду, что любая используемая вами процедура не будет использовать цикл?Если вы хотите получить ответ в «постоянном времени», а не «линейном времени», вам просто нужно сохранить указатель на запись.Если вы не владеете вставкой / удалением элементов в массиве, то нет, нет другого способа, кроме линейного поиска по времени, либо выполнения цикла самостоятельно, либо использования NSArray
- (NSIndexSet *)indexesOfObjectsPassingTest:(BOOL (^)(id obj, NSUInteger idx, BOOL *stop))predicate