我是 ios 编程领域的新手,使用链接器对我来说只是一个全新的世界。我会尽力准确地回答我的问题。
上下文:使用 xcode 在 ios 项目中链接静态库。
问题:
问题成员: 3个静态库。
libTestLibA.a
libTestLibB.a
libTestLibB_mine.a——与 libTestLibB.a 相同的功能——相同的类/方法。
问题描述
我正在使用 libTestLibA.a 制作应用程序。
libTestLibA 有一些类依赖于 libTestLibB 中的一些类。因此 libTestLibA.a 自身编译了 libTestLibB.a。
现在,我有了自己的名为 libTestLibB_mine 的库。它具有与 libTestLibB 完全相同的功能。相同功能的相同方法/类。我希望 libTestLibA 使用 libTestLibB_mine 而不是 libTestLibB。我刚刚为每个问题成员编译了静态库 (.a),即 libTestLibA、libTestLibB 和 libTestLibB_mine。
问题:
当我编译我的应用程序时,我是否可以强制静态编译库 (libTestLibA.a) 使用另一个库 (libTestLibB_mine.a) 而不是它已经包含的库 (libTestLibB.a)?如果是,如何?如果没有,是否有一些解决方法?
非常感谢。
最佳答案
如果 A 已经针对 B 进行了静态合规,那么我认为您不能将 B 替换为 B_mine。但作为一种变通方法,我认为您在这里寻找的可能是“Method Swizzling”。它所做的是,在运行时,用另一个方法替换类的方法(拦截消息并将其定向到其他地方)。
以下链接应该对您有用。
关于ios编程-在应用程序级别覆盖静态库中的静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14945561/