ios - 自定义或子类化 CocoaPod 库

标签 ios objective-c subclass cocoapods subclassing

问题可以这样简化:我们的库有 3 个 View Controller - MainController , SecondController , ThirdController . MainController是我们在个人项目中创建的实例;它有一个转换为 SecondController 的按钮它有一个转换为 ThirdController 的按钮. ThirdController有一个连接到方法的按钮:

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

假设 MainController进口 SecondController.h , 和 SecondController进口 ThirdController.h .

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

最佳答案

fork 并更改它,引入委托(delegate)或添加更多自定义选项。如果你改进它,你可以向作者发送一个拉取请求。

更新:

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

在最坏的情况下,您可以诉诸方法调配。

关于ios - 自定义或子类化 CocoaPod 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27237270/

相关文章:

php - 单个文件中 PHP 类扩展的顺序

ios - 将 UIIImage 传递给 UIImagePickerController 进行编辑

ios - 在新的 Firebase 4.0 版本中获取数据库引用

objective-c - iOS 应用程序中的 FFMpeg 不同步音频/视频

java - 如何使用 BufferedReader 读取多行?

swift - 允许混合状态,但不允许使用 NSButton 单击(复选框)

ios - 有没有办法让不同文件中的委托(delegate)在 View Controller 中设置变量?

ios - 隐藏 UISearchBar 明文按钮

objective-c - iPad 纵向中 <UITableView> 的开始/结束外观转换调用不平衡

ios - 子类化 NSURLConnection 给出错误 : unrecognized selector sent to instance