enumerateObjectsUsingBlock:Últimamente he estado usando mucho para mis necesidades de enumeración rápida y me cuesta entender el uso de BOOL *stopen el bloque de enumeración.
Los NSArrayestados de referencia de clase
stop: Una referencia a un valor booleano. El bloque puede establecer el valor enYESpara detener el procesamiento posterior de la matriz. Elstopargumento es un argumento exclusivo. Solo debe establecer este booleanoYESdentro del bloque.
Entonces, por supuesto, puedo agregar lo siguiente en mi bloque para detener la enumeración:
if (idx == [myArray indexOfObject:[myArray lastObject]]) {
*stop = YES;
}
Por lo que he sido capaz de decir, no explícitamente el establecimiento *stopa YESno tiene ningún efecto secundario negativo. La enumeración parece detenerse automáticamente al final de la matriz. Entonces, ¿es *stoprealmente necesario usar en un bloque?
fuente

stopbandera es un aviso; la enumeración puede continuar durante un número indefinido de iteraciones en el caso concurrente, por ejemplo. Es decir, no debe establecer una__blockvariable incondicionalmente en cada pasada a través de la enumeración y esperar que sea el "último" valor cuando se usastoppara terminar antes. Siempre debe acoplar "no, use este objeto" con la configuraciónstop = YES;.