在objective-c或swift中覆盖pod文件方法的最佳实践是啥?

Posted

技术标签:

【中文标题】在objective-c或swift中覆盖pod文件方法的最佳实践是啥?【英文标题】:What is the best practice to override pod file methods in objective-c or swift?在objective-c或swift中覆盖pod文件方法的最佳实践是什么? 【发布时间】:2018-08-07 15:37:30 【问题描述】:

我最近开始在我自己的项目中使用开源的第三方框架,因为它可以将我的开发时间缩短一半。在执行此操作时,我注意到当我操作来自执行 pod 安装的实现文件时,下载该项目的另一个开发人员无法访问我的独特更改,因为他们将在自己的计算机上进行 pod 安装,因此我的未显示更改。实现覆盖的最佳实践是什么?我在想我应该在项目中创建一个文件,它会覆盖执行 pod 安装的方法,例如类别和/或扩展名?这是一个可行的过程还是我应该考虑另一种方法?

【问题讨论】:

如果可能,请使用自己的包装器,在其中创建自己的第三方代码子类,然后覆盖目标方法并让其他开发人员看到您的包装器。如果不是,如果我理解正确,您正在修改第三方 pod 中的文件,这很奇怪。如果确实如此,您的代码可能会在您执行pod update 后被删除。也许第三方不是您要找的。​​span> 【参考方案1】:

分叉(克隆)项目,进行更改并将其推送到您的存储库。其他用户可以使用您的代码更改。切勿直接在位于 pod 文件夹中的源文件中更改代码,因为更新该 pod 时您将丢失所有更改。

或者创建您自己的 pod,将要修改的 pod 添加为依赖项并将其扩展到开发 pod 中,然后将其推送到您的 repo。

【讨论】:

谢谢,分叉(克隆)过程很有意义,但是我确实想操作源文件。在 Pod 被其他开发人员下载或更新后,我经历了丢失更改的痛苦。通过创建我自己的 pod 来解决您提到的替代方法的唯一方法是什么?你的步骤听起来有点混乱,但我可以研究一下 是的,您需要自己的项目/pod。通过 fork 项目,您将学到很多关于版本控制和依赖管理的知识:) 请注意,您可能会丢失第三个库中的所有更新,您可能需要手动检查它们。如果他们解决问题等,则在您自己的分支/版本上。可能需要樱桃采摘。 @Larme 您可以使用第三方软件查看存储库,但是您需要检查项目是否已更新。如果是这样,则需要再次获取数据... @J.Doe 确实,但这是手动检查,而定期更新 pod 可以完成这项工作(即使我建议只更新补丁/次要以修复错误)并查看不时向第三方回购。

以上是关于在objective-c或swift中覆盖pod文件方法的最佳实践是啥?的主要内容,如果未能解决你的问题,请参考以下文章

如果类没有以 `@objc` 为前缀,是不是可以在 Objective-C 项目中使用用 Swift 编写的 pod?

如果类没有以 `@objc` 为前缀,是不是可以在 Objective-C 项目中使用用 Swift 编写的 pod?

如何删除 use_frameworks!并继续在 Objective-C 项目中使用 swift pod?

未解析的标识符 - Swift 中的 Objective-C Pod

如何在 iOS 应用程序的同一个项目中集成 Objective-C 和 Swift pod

制作Swift和Objective-C Mixed的Pod