我的 iOS 项目中有几个第三方库(不使用 cocoapods),当我深入研究每个库的文件时,我发现其中 4 个库都有自己的版本UIImage+ImageEffects 类别。所以我打算将它们合并到一个文件中,但这有点乱:
例如,其中一个库 SCLAlertView 在 its version of UIImage+ImageEffects 内有一个自定义方法。它引用 SCLAlertView 的 类之一来访问变量。因此,如果我将该类导入到合并文件中,它将使新的 UIImage+ImageEffects 依赖于 SCLAlertView。我对此感到不舒服,而且它不漂亮。所以我需要你们的想法:
解决此问题的最佳方法是什么?我应该继续合并它们还是将它们作为单独的文件保存在各自的库中?
在一个项目中拥有多个稍微不同的同一类别的版本真的很重要吗?它会引起任何问题/冲突吗?
我经常看到这个:
Class _NSZombie_OS_dispatch_group is implemented in both ?? and ?? ...
在我的控制台中。这是不是因为上面的事情造成的?
提前致谢。
注意:我没有给问题一个通用名称,例如“一个项目中同一类别的多个版本”,因为 UIImage+ImageEffects 被许多库用于模糊效果并且具有最有可能在您的项目中最终成为多个略有不同的版本
Best Answer-推荐答案 strong>
回答 2 将导致回答 1(而 3 听起来像是系统中的错误,您应该提交它):
在一个项目中拥有多个稍微不同的同一类别的版本真的很重要吗?它会引起任何问题/冲突吗?
只要所有方法名称都是唯一的,除了系统类上的类别对于代码库的长期可维护性来说很糟糕的问题之外,没有问题。
但是,如果这些类别都具有相同名称的方法(它们可能会这样做),那么将只使用其中一个,而哪个是不确定的。
因此,是的,您需要合并它们。或者,更好的是,通过将它们重构为辅助类或其他东西来完全消除它们(然后针对原始代码库提交一个错误并让他们拉取更改)。
关于ios - 一个项目中有多个 UIImage+ImageEffects 文件,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/34554768/
|