2

我一直在查看一些向 UITableView 添加类类别的第三方代码;该接口添加了三个方法,但实现还包括 -dealloc 方法的代码(以及其他辅助方法)。

我对类类别不是很熟悉——除了这似乎是一件坏事之外,这是否会覆盖 UITableView 的所有实例的 -dealloc 方法——即使该类别不是由特定类(比如 ViewController)导入的实例化一个 UITableView?

4

1 回答 1

15

扔掉该代码,因为它显然是垃圾(如果可以,请发布指向它的链接)。

假设它确实是一个类别 on UITableView,这dealloc将有效地替换 -- 覆盖,但没有继承 -- 类的 normal dealloc,从而保证行为不端。它不仅会破坏所有 UITableView 实例的功能,还会弄乱所有子类。

即使它不是一个类别UITableView,而是一些尝试组织代码,那么它dealloc是在错误的地方。它应该始终位于班级的主要@implementation. 就像类集群将在主实现上实现所有原始方法一样——dealloc非常原始方法(其中“原始”方法是类功能的核心方法,仅根据其他原始方法实现) .

于 2013-06-02T02:59:14.790 回答