Как проверить, был ли объект выпущен из памяти?проблема с управлением памятью iphone
Я знаю, что объект должен быть выпущен вручную, когда мы используем alloc | copy | сохранить для создания этого объекта. если использовать метод класса экземпляра (NSString stringwithformat:
), объект будет автоматически отпущен на NSAutoRealeasePool
, однако иногда есть какой-то объект, который был использован для освобождения функции (void)dealloc
.
Может кто-нибудь сказать мне
В чем разница между
[object release]
сразу после того, как функции Alloc,[object release]
на(void)dealloc
иNSAutoReleasePool
освободить объект?Когда вызывается функция
(void)dealloc
, а когдаNSAutoReleasePool
освобождает память, я знаю, что это каждый цикл цикла, как я могу проверить его из кода?Когда я объявил переменную в заголовке и установил свойство как сохранение, я все еще могу использовать функцию alloc для этого объекта, но не вызывать утечку памяти, но от this post кажется, что однажды объявлен объект сохранения в заголовке , то вы больше не можете назначить объект, потому что оба сохранят объект, может ли кто-нибудь сказать мне, почему я все еще могу так писать, не вызывая утечки памяти?
retag: "memory" и "management" to "memory-management" – Jeremiah
Это действительно вопрос, на который нельзя ответить очень хорошо в этом формате.Вам нужно получить хорошую книгу по программированию Objective-C и изучить ее. (Или просто отказаться от управления памятью и придерживаться ARC.) –