我一直在寻找一些向UITableView添加类类别的第三方代码;接口添加了三个方法,但实现还包括-dealloc方法的代码(以及其他辅助方法)。
我对类类别并不是非常熟悉 - 除了这看起来像是一件坏事之外,这是否会覆盖所有UITableView实例的-dealloc方法 - 即使该类别未被特定类导入(比如说)一个实例化UITableView的ViewController?
答案 0 :(得分:15)
抛出代码,因为它显然是垃圾(如果可以的话,发布一个链接到它)。
假设它确实是UITableView
上的一个类别,dealloc
将有效地替换 - 覆盖,但没有继承 - 该类的正常dealloc
,从而保证了不当行为。它不仅会破坏UITableView的所有实例的功能,而且还会破坏所有子类。
即使它不是UITableView
上的某个类别,但有些尝试组织代码,但dealloc
位于错误的位置。 始终应该在班级的主要@implementation
上。就像类集群将在主实现上实现所有原始方法一样 - dealloc
是一种非常原始的方法(其中“原始”方法是一种方法,它是类的功能的核心,并且仅以术语实现其他原始方法)。