【发布时间】:2014-11-30 23:52:09
【问题描述】:
我正在使用一个具有相当复杂的继承结构的库(它由几个继承的类组成,例如UITableViewController、UIView、UITableViewCell 等,其中一些类用于创建自定义对象.
我需要添加一些功能(准确地说,是实现轻击手势识别器)。简单的解决方案是将几行代码放入库的某些类中。
通常,我喜欢将我的代码与库代码分开。是否有可能以某种方式“覆盖”这些类而不重写它们,或者添加一些扩展?
或者唯一的想法是重写所有生成自己的类和大量无用代码的类?
或者只是将自己的代码添加到库中?
补充:
看来,类别是正确的方向,但不是特别是我想要的。这正是我想要的:
我有一个Class1:
- (void)someMethod {
doThis;
}
并且没有子类化//编辑我想将其转换为的类:
- (void)someMethod {
doThis;
andThisToo;
}
类别向一个类添加其他方法,而我需要在已经存在的方法中添加一些功能。
【问题讨论】:
-
类类别可以工作。
-
@CrimsonChris,谢谢!好的和优雅的解决方案,这就是我想要的!
-
向此类库的作者提出拉取请求是个好主意吗?
-
如果您希望作者使用您的更改,最好直接在库的类中添加此功能。如果这是您认为只会被您使用的自定义,那么您不应该直接接触库。请改用类别。
-
CrimsonChris,我添加了一些进一步的解释。似乎类别很接近,但不是我特别想要的。我是对的,现在只有两种解决方案:子类化每个类或向库中添加功能?
标签: ios objective-c class object subclassing