2010-07-27 3 views
1

Я хочу лучше понять разницу между dealloc и отпустите функцию .... пример ... я свой класс, производный от NSObject MyClass Калле в мой код, чтобы использовать этот класс, я создаю экземпляр MyClass ..iphone релиз dealloc

// initialization 
MyClass* test = [[MyClass alloc] init]; 

//do some stuff.... 

// release?? 
[ test release]; 

Правильно ?? и dealloc ??? необходимо использовать в последовательности или один перезаписать другой?

+0

Возможный дубликат [Разница между выпуском и dealloc в объекте-c] (http://stackoverflow.com/questions/559295/difference-between-release-and-dealloc-in-objective-c) – Vladimir

ответ

2

dealloc автоматически вызывается, когда preserveCount = 0. Каждый раз, когда вы вызываете [тестовый выпуск], saveCount уменьшается на единицу.

В вашем примере все нормально, так как у вас есть тест распределения (сохранить значение +1), а затем отпустить (сохранить счет 0). Dealloc будет автоматически вызван

+0

релиз выполняется на примере класса, а не на классе :) – willcodejavaforfood

+0

в вашем примере у вас есть два экземпляра, каждый из которых имеет счет сохранения +1 – Noya

+0

нормально, но можете ли вы написать мне пример, где у вас есть keepCount = 2 и что такое использование этой вещи? спасибо большое! стр. ho visto che sei italiano !!!! :) – ghiboz

1

До тех пор, пока это конец жизни test, вы правы. Dealloc test будет автоматически выполняться в зависимости от вашего заявления [ test release].

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