Domanda

Sto cercando di capire un problema di indice fuori vincolo che sto entrando nel mio newArray oggetto. Passo oldArray al metodo e quindi utilizzare quanto segue:

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

Se oldArray è stato rilasciato, riceverei un errore su questa riga o otterrei un'eccezione fuori limite quando provo ad accedere newArray?

È stato utile?

Soluzione

No, il codice sopra fa una copia di oldArray in newArray. Mutevole oldArray in alcun modo (incluso il rilascio) non avrà alcun impatto su newArray, e in ogni caso non causerebbe certamente un'eccezione dei limiti.

La causa più probabile è quella oldArray è nil A questo punto, così newArray è un array vuoto quando non ti aspetti che sia. Alternativamente, oldArray Potrebbe non avere tanti elementi che pensi che lo faccia. Eccezione dei limiti significa che stai leggendo oltre la fine dell'array. Non ha nulla a che fare con la gestione della memoria.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top