自定义或子类化CocoaPod库

时间:2014-12-01 21:03:20

标签: ios objective-c subclass cocoapods subclassing

问题可以像这样简化:我们的库有3个视图控制器 - MainControllerSecondControllerThirdControllerMainController是我们在个人项目中创建实例的内容;它有一个转换为SecondController的按钮,它有一个转换为ThirdController的按钮。 ThirdController有一个连接方法的按钮:

-(void)buttonPressed{
    NSLog("Button has been pressed!");
}

我们假设MainController导入SecondController.hSecondController导入ThirdController.h

除了覆盖buttonPressed之外,我们希望保持库不变,以便它从我们的个人项目中呈现视图控制器,因此我们将ThirdController作为CustomThirdController继承并覆盖buttonPressed做我们想做的事。如果我们现在将MainController.h导入到我们的项目并创建MainController的实例,它将不会使用我们的新CustomThirdController子类。我们如何使用子类而不从库中继承所有3个控制器?

1 个答案:

答案 0 :(得分:3)

分叉并更改它,引入委托或添加更多自定义选项。如果你改进它,你可以向作者发送拉请求。

更新

对于猴子修补,如果要替换现有类中的单个方法,请使用类别。

在最糟糕的情况下,你可以采用方法调配。