在我们的iOS应用中,我们使用封闭源静态链接库(foo.a
+头文件)。
该库保留自己的内部状态,很可能在全局变量中。不幸的是,一段时间后,该库有时会处于错误状态。发生这种情况时,它基本上变得不可用-从其所有API函数返回错误代码。
我的问题:是否可以从iOS应用程序中重新初始化静态库?该库不包含任何文件句柄或任何其他系统资源(据我所知),因此据说可以安全地对其进行初始化。
换句话说(我意识到这听起来越来越疯狂),是否有办法找出库将其全局变量保留在哪个内存区域,然后将该内存区域清零?
答案 0 :(得分:1)
否,即使该区域存在,将其清零也不会“重新初始化”库。它很可能将其置于无效状态。静态库直接链接到您的可执行文件中。它没有单独的内存区域(几乎与您作为项目的一部分自己编译源代码时完全一样)。您需要与提供者一起修复他们的库。