Почему [копия] повлияла на NSArray в Xcode

Следующее было закодировано в цикле while

[array_stations addObject:[dic_stations copy]];

[array_stations addObject:dic_stations ];

В чем разница между ними? если [copy] не включено, весь элемент словаря будет одинаковым внутри цикла while, а NSLog массив.

Если добавлено [copy], все элементы отображаются в обычном порядке.

Спасибо.


person K.W.    schedule 27.08.2013    source источник
comment
Э-э, в первом случае вы получите копию. Во втором случае оригинал.   -  person Hot Licks    schedule 27.08.2013
comment
В array_station есть 10 элементов (я использую WHILE LOOP для добавления элемента в массив), если я не использую [copy], все записи в этом массиве одинаковы.   -  person K.W.    schedule 27.08.2013
comment
Как я уже сказал, в первом случае вы получаете копию, во втором случае оригинал. Если вы добавите оригинал в массив, измените его и добавите снова, вы получите один и тот же объект дважды, поэтому, очевидно, они будут одинаковыми.   -  person Hot Licks    schedule 27.08.2013
comment
Понял, большое спасибо   -  person K.W.    schedule 27.08.2013


Ответы (1)


[dic_stations copy] представляет объект nsmutabledictionary. dic_stations представляет объект nsdictionary. Для получения более подробной информации щелкните эту ссылку. .

person Prasad G    schedule 27.08.2013
comment
На самом деле, мы понятия не имеем, что такое тип dic_stations. Это может быть кумкват. - person Hot Licks; 27.08.2013