Поскольку python работает со ссылкой, поэтому, когда вы сделали dict2 = dict1, вы передаете ссылку на dict2, это было то же самое, что и dict1. Итак, когда вы вносите изменения в dict1 или dict2, вы меняете ссылку, и оба определяют chages. Извините, если я что-то ошибся на английском.
Да, вам нужно использовать NSMutableArray
:
int count = [imageArray count];
NSMutableArray *returnArray = [[NSMutableArray alloc] initWithCapacity:count];
for (imageName in imageArray) {
UIImage *image = [UIImage imageNamed:imageName];
[returnArray addObject: image];
...
}
EDIT - объявление исправлено
Для этого вам нужно будет использовать NSMutableArray , поскольку добавление является мутацией, а NSArray неизменным.
Вы можете создать заполненный NSMutableArray
в NSArray
впоследствии ( см. Здесь для обсуждения ), но вы не будете добавлять элементы в обычный старый NSArray
в ближайшее время .
Будет ли это подходящим временем для использования NSMutableArray ?
Я знаю, вы упомянули, что хотели бы избежать этого, но иногда есть причина для таких вещей, как это.
Я бы посоветовал проводить оптимизацию только тогда, когда вы знаете, что NSMutableArray
равен , что снижает производительность, но если это так, вы всегда можете создать статический массив из изменяемого массива после того, как вы его заполнили. Это зависит от того, вызвано ли снижение производительности последующим использованием NSMutableArray
или просто его созданием.
Я предполагаю, что это не будет узким местом в производительности вашего приложения.