我一直在查看一些向 UITableView 添加类类别的第三方代码;该接口添加了三个方法,但实现还包括 -dealloc 方法的代码(以及其他辅助方法)。
我对类类别不是很熟悉——除了这似乎是一件坏事之外,这是否会覆盖 UITableView 的所有实例的 -dealloc 方法——即使该类别不是由特定类(比如 ViewController)导入的实例化一个 UITableView?
我一直在查看一些向 UITableView 添加类类别的第三方代码;该接口添加了三个方法,但实现还包括 -dealloc 方法的代码(以及其他辅助方法)。
我对类类别不是很熟悉——除了这似乎是一件坏事之外,这是否会覆盖 UITableView 的所有实例的 -dealloc 方法——即使该类别不是由特定类(比如 ViewController)导入的实例化一个 UITableView?
扔掉该代码,因为它显然是垃圾(如果可以,请发布指向它的链接)。
假设它确实是一个类别 on UITableView
,这dealloc
将有效地替换 -- 覆盖,但没有继承 -- 类的 normal dealloc
,从而保证行为不端。它不仅会破坏所有 UITableView 实例的功能,还会弄乱所有子类。
即使它不是一个类别UITableView
,而是一些尝试组织代码,那么它dealloc
是在错误的地方。它应该始终位于班级的主要@implementation
. 就像类集群将在主实现上实现所有原始方法一样——dealloc
非常原始方法(其中“原始”方法是类功能的核心方法,仅根据其他原始方法实现) .