Как мы можем проверить это, если массив имеет счет = 0 или нет? - PullRequest
0 голосов
/ 07 декабря 2010

Как мы можем проверить это, если массив был в памяти или нет?

У меня есть состояние, когда оно мне нужно

следующий код правильный для освобождения массива

if (array1)
{
[array1 release];
}

Спасибо

Ответы [ 3 ]

6 голосов
/ 07 декабря 2010

Вы не должны проверять количество объектов в Obj-C. В лучшем случае это число вряд ли пригодится для отладки, а в худшем случае оно вводит в заблуждение. Если вы практикуете правильные методы управления памятью, вам никогда не потребуется проверять счетчик хранения.

Если у вас возникли проблемы с управлением памятью, опубликуйте больше кода, и мы поможем вам найти причину проблемы. Кроме того, если вы не читали это, вы должны.

http://developer.apple.com/library/mac/ipad/#documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmRules.html%23//apple_ref/doc/uid/20000994-BAJHFBGH

0 голосов
/ 07 декабря 2010

К сожалению, вам нужно больше узнать о массиве 1, кроме его retainCount и о том, является ли он nil.Если вы указываете на объект, который был освобожден в другом месте, вызов retainCount может либо привести к сбою вашей программы, либо вернуть полный мусор.


[Удален мой комментарий об авто-выпуске - он был дезинформирован.Вышесказанное остается верным до сих пор!]

0 голосов
/ 07 декабря 2010

Если условие правильное.используя это, вы можете проверить, находится ли массив в памяти или нет.После освобождения массива вы также должны назначить nil.Так что он будет полностью удален из памяти.

Ура, Raxit

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