Делая arrayTemp = myArray
, вы объявляете arrayTemp
как новый указатель на существующий массив myArray
.Это не копия (если вы поместите X в myArray [42], arrayTemp [42] также будет X).
Второй вариант выглядит так, как будто вы делаете копию своего массива, но все же массив значения копируются по ссылке (по указателю), когда вам кажется, что вам нужна копия "по значению".
Просто попробуйте:
NSArray *arrayCopy = [myArray copy];
Осторожно: с точки зрения управления памятью это эквивалентно retain
или alloc/init
: вы должны отпустить arrayCopy
после использования.