目标C:子类化,重写dealloc

时间:2011-03-31 18:54:40

标签: iphone objective-c memory-management dealloc

我正在创建自定义UITableViewCell的子类。超类具有一些在dealloc方法中释放的属性。我在我的子类中添加了一个额外的属性,所以我确保覆盖dealloc方法并释放我的新属性。

我的问题是,既然我重写了dealloc方法,那么超类dealloc方法中释放的属性是否会被释放(我调用[super dealloc])?我需要在MY dealloc方法中专门发布那些吗?

3 个答案:

答案 0 :(得分:7)

如果您正在调用[super dealloc],那么-dealloc的超类实现仍将运行。超类应该负责释放自己的属性。所以不,您不需要释放超类属性。事实上,这样做可能会导致您的应用程序崩溃。

答案 1 :(得分:2)

如果你打电话给[super dealloc],你没事。该方法不知道它是由子类调用还是由运行时直接调用,它将执行其通常的工作并一如既往地处理自己的属性。

答案 2 :(得分:2)

重要提示:在您使用自己的ivars之后,在-dealloc方法中最后调用[super dealloc],并在-dealloc中完成您需要执行的任何操作。当该方法返回时,您的对象将不会有任何内容。