0

只管 Apple 政策,只谈论 Objective-C 语言,假设我的程序调用了一个.a库。这是否可以.a从互联网上获取,并运行更新版本.a而不是旧版本.a

谢谢。

4

2 回答 2

2

不适用于静态链接库 ( .a),至少在任何情况下都是如此。您当然可以使用动态加载的库 ( .so);这是正常的用例之一。看看dlopen,dlclosedlsym从动态加载器 (https://developer.apple.com/library/mac/#documentation/DeveloperTools/Reference/MachOReference/Reference/reference.html)。

于 2012-04-20T14:02:50.557 回答
0

这不仅仅是 iOS,还有 OS X 应用程序(可能还有其他一般的 Unix)

静态库(.a 文件)在程序运行时无法替换,因为它们是应用程序二进制文件的一部分。应用程序二进制文件映射到进程的地址空间。如果您尝试更改其中的任何部分,您几乎肯定会最终导致应用程序崩溃。

动态库(.so 文件)理论上是可以替换的。但是,大多数应用程序在开始时或第一次需要时加载它们,然后它们成为应用程序地址空间的一部分。我听说理论上应用程序可以卸载动态库,但我从未见过在任何真正的 Cooca 应用程序中这样做过。

于 2012-04-20T14:42:42.370 回答