ios编程 - 在应用程序级别覆盖静态库中的静态库

时间:2013-02-18 21:26:35

标签: ios linker static-libraries

我是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)吗?如果有,怎么样?如果没有,是否有一些解决方法?

非常感谢。

1 个答案:

答案 0 :(得分:1)

如果A已经静态地遵守B,那么我认为你不能用B_mine替换B.但作为一种解决方法,我认为你在这里寻找的是“Method Swizzling”。它的作用是在运行时用另一种方法替换类的方法(拦截消息并将其指向其他地方)。

以下链接对您有用。