Pregunta

Estoy tratando de encontrar un problema de índice fuera de lo que estoy recibiendo en mi newArray objeto. Paseo oldArray al método y luego use lo siguiente:

newArray = [[NSMutableArray alloc] initWithArray:oldArray];

Si oldArray se ha lanzado, ¿recibiría un error en esta línea, o obtendría una excepción fuera de los límites cuando intente acceder newArray?

¿Fue útil?

Solución

No, el código anterior hace una copia de oldArray dentro newArray. Cambiando oldArray de cualquier manera (incluido liberarlo) no tendrá ningún impacto en newArray, y en cualquier caso ciertamente no causaría una excepción de límites.

La causa más probable es que oldArray es nil En este punto, entonces newArray es una matriz vacía cuando no esperas que sea. Alternativamente, oldArray Puede que no tenga tantos elementos como crees que lo hace. La excepción de los límites significa que estás leyendo más allá del final de la matriz. No tiene nada que ver con la gestión de la memoria.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top