是否可以重新初始化静态库?

时间:2019-02-21 18:38:13

标签: ios static-libraries

在我们的iOS应用中,我们使用封闭源静态链接库(foo.a +头文件)。

该库保留自己的内部状态,很可能在全局变量中。不幸的是,一段时间后,该库有时会处于错误状态。发生这种情况时,它基本上变得不可用-从其所有API函数返回错误代码。

我的问题:是否可以从iOS应用程序中重新初始化静态库?该库不包含任何文件句柄或任何其他系统资源(据我所知),因此据说可以安全地对其进行初始化。

换句话说(我意识到这听起来越来越疯狂),是否有办法找出库将其全局变量保留在哪个内存区域,然后将该内存区域清零?

1 个答案:

答案 0 :(得分:1)

否,即使该区域存在,将其清零也不会“重新初始化”库。它很可能将其置于无效状态。静态库直接链接到您的可执行文件中。它没有单独的内存区域(几乎与您作为项目的一部分自己编译源代码时完全一样)。您需要与提供者一起修复他们的库。