2010-11-08 3 views
0

У меня есть настройка NSCopying, и я могу скопировать массив успешно.Array копирование и удаление

theArray = [[NSMutableArray alloc] initWithArray:results.availableData 
copyItems:YES]; 

Когда я закончил с theArray и все его данные барахло я хотел бы получить еще одну новую копию данных из results.availableData массива.

Какой лучший и безопасный способ сделать это?

Если я

[theArray release]; 
theArray = [[NSMutableArray alloc] initWithArray:results.availableData 
copyItems:YES]; 

Так релиз theArray затем Alloc и снова инициализировать его?

Большое спасибо -кода

ответ

0

Как насчет просто:

[theArray setArray: [[NSArray alloc] initWithArray: results.availableData 
    copyItems: YES] autorelease]]; 

И покончим с этим.

+0

NSMutableArray копирует и работает идеально. Я использую изменение и удаление объектов в массиве. Позже я хочу получить новую копию данных из results.availableData. Не понимаю, почему мне нужно снова назначить, если я не выпустил. Извините, если я не смог правильно сформулировать вопрос. Или вы пытаетесь сказать, как я сначала распределил, а init - неправильно? – 2010-11-08 13:38:54

+0

@Code - что делает этот пример: (1) выделить временный массив, копируя элементы из 'results.availableData', (2) заменяйте содержимое' theArray' содержимым временного массива, (3) autorelease временный. Это альтернатива выпуску/перераспределению 'theArray', как вы это делали. –

+0

Но разве это не должно быть NSMutableArray, потому что мне нужно будет удалить объекты из массива? Или я чего-то не хватает? По этой причине TheArray является NSMutableArray. – 2010-11-09 12:55:56

Смежные вопросы