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