В последнее время я часто использую enumerateObjectsUsingBlock:
для быстрого перечисления, и мне трудно понять использование BOOL *stop
в блоке перечисления.
Ссылка на класс NSArray
указывает
stop
: ссылка на логическое значение. Блок может установить значениеYES
, чтобы остановить дальнейшую обработку массива. Аргументstop
является аргументом только для выхода. Вы должны только когда-либо устанавливать это логическое значение наYES
внутри блока.
Тогда, конечно, я могу добавить в свой блок следующее, чтобы остановить перечисление:
if (idx == [myArray indexOfObject:[myArray lastObject]]) {
*stop = YES;
}
Из того, что я смог сказать, явная установка *stop
на YES
не имеет никаких негативных побочных эффектов. Кажется, что перечисление автоматически останавливается в конце массива. Так действительно ли необходимо использовать *stop
в блоке?