1

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

我的问题是,既然我覆盖了dealloc方法,那么在超类dealloc方法中释放的属性是否不会被释放(我正在调用[super dealloc])?我是否需要在我的 dealloc 方法中专门释放那些?

4

3 回答 3

6

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

于 2011-03-31T18:56:30.757 回答
2

如果你打电话[super dealloc],你很好。该方法不知道它是由子类调用还是由运行时直接调用,它会照常工作并照常处理自己的属性。

于 2011-03-31T18:56:20.707 回答
2

重要提示:[super dealloc]在您拥有自己的 ivars 并在 -dealloc 中完成您需要做的任何其他事情之后,在您的 -dealloc 方法中调用最后一个。当该方法返回时,您的对象不会留下任何东西。

于 2011-03-31T19:19:07.493 回答