Информация о перераспределении объекта - PullRequest
1 голос
/ 15 сентября 2011

У меня есть вопрос ... Если у меня есть, например, один NSMutableArray, и если я использую его ... с, например, 100 объектами ... если я использую этот код:

mutablearray=[NSMutableArray alloc]init];

и добавить в массив другие 100 объектов ... первые 100 объектов были освобождены (так что память свободна) или я должен сделать [выпуск mutablearray], чтобы освободить память? спасибо

Ответы [ 3 ]

0 голосов
/ 15 сентября 2011

Вы должны использовать [релиз mutablearray], чтобы освободить память, потому что освобождение объектов не освобождает внутренние структуры массива. Кроме того, вы не должны освобождать объекты в массиве, вместо этого удалите их из массива с помощью любой из команд удаления ... NSArray

0 голосов
/ 15 сентября 2011

если mutablearray сохранен или используется через свойство copy, то вам, безусловно, нужно его освободить.И если вы не используете mutablearray в качестве свойства, вам нужно рассмотреть следующее: Добавление объекта в NSMutableArray увеличивает его счетчик хранения на единицу, давая ему счетчик сохранения 2 (1 для alloc / init и один длядобавление в массив).

, так что removeAllObject позаботится об увеличении количества резервных копий для массива, и вам не о чем беспокоиться.Просто позвоните: [mutablearray removeAllObjects];

0 голосов
/ 15 сентября 2011

Вам нужно или удалите все объекты из вашего массива.В этом случае вам не нужен новый массив.Или освободите массив, при выпуске массив освободит все его объекты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...