2010-07-27 91 views
1

我想最瞭解的dealloc之間的區別和釋放功能.... 例子...... 我有我的類從NSObject的卡萊MyClass的 在我的代碼衍生的,使用這個類,我創建一個實例。的MyClass ..iPhone發佈的dealloc

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

//do some stuff.... 

// release?? 
[ test release]; 

是嗎?和dealloc?需要用於一個或一個覆蓋另一個?

+0

[Objective-C中釋放與dealloc之間的區別]的可能重複(http://stackoverflow.com/questions/559295/difference-between-release-and-dealloc-in-objective-c ) – Vladimir 2010-07-27 09:14:32

回答

2

當retainCount爲== 0時,會自動調用dealloc。每次調用[test release]時,retainCount減1。

在你的例子中一切都很好,因爲你有alloc測試(保留計數+1),然後釋放(保留計數0)。 Dealloc將自動調用

+0

發佈是在一個類的實例上完成的,而不是在一個類上完成的:) – willcodejavaforfood 2010-07-27 09:15:11

+0

在你的例子中,你有兩個實例,每一個實例的保留數+1 – Noya 2010-07-27 09:28:57

+0

ok,但是你能否給我寫一個你有retainCount = 2的例子這個東西的用法是什麼? 非常感謝noya! p.s. ho visto che sei italiano !!!! :) – ghiboz 2010-07-27 09:30:49

1

只要這是test的生命的結束,你是對的。 test的Dealloc將根據您的[ test release]聲明自動發生。