我是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)吗?如果有,怎么样?如果没有,是否有一些解决方法?
非常感谢。
答案 0 :(得分:1)
如果A已经静态地遵守B,那么我认为你不能用B_mine替换B.但作为一种解决方法,我认为你在这里寻找的是“Method Swizzling”。它的作用是在运行时用另一种方法替换类的方法(拦截消息并将其指向其他地方)。
以下链接对您有用。