Если myArray
является неизменным, то subArrayWithRange:
, вероятно, не копирует указатели, хотя retain
, вероятно, по-прежнему необходимо отправлять всем в подмассив. 1008 *
В целом, это действительно не имеет значения. Честно говоря, я никогда не видел случая, чтобы быстрое перечисление по сравнению с indexOfObject:
было достаточно проблемы с производительностью, чтобы привлечь внимание (всегда было что-то хуже.:).
другой подход; используйте enumerateBlock:
и просто возвращайтесь из индексов из рейнджера (и используйте флаг остановки).
[myArray enumerateWithBlock: ^(id o, NSUInteger i, BOOL *f) {
if (i < 10) return;
if (i > 20) { *f = YES; return; }
... process objects in range ...
}];
(Вы могли бы даже использовать вариант options:
для одновременного перечисления.)