【问题标题】:Dealloc method in class category类类别中的 Dealloc 方法
【发布时间】:2013-05-28 13:49:30
【问题描述】:

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

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

【问题讨论】:

    标签: ios objective-c


    【解决方案1】:

    扔掉那个代码,因为它显然是垃圾(如果可以的话,发布一个链接)。

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

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

    【讨论】:

    • @bbum - 这就是我测试它时似乎正在发生的事情(以及你对另一个问题的另一个答案似乎在说什么) - 但我只是不确定从那以后应该发生什么它不是在那个特定的类中导入的(它在其他地方)。有问题的代码是github.com/zhigang1992/ZGParallelView
    • 哇。感谢您的链接。错误提交。看到这些存储库有多受欢迎,就会出现这种错误,真是令人恐惧!
    猜你喜欢
    • 2013-01-20
    • 2013-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多