2010-07-27 92 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]声明自动发生。