如何在运行时检测到已加载框架?

时间:2014-03-28 04:23:11

标签: ios frameworks runtime static-libraries

我正在建立一个静态库,以便分发给其他人在iOS应用程序中使用,我希望只有在他们已经包含在应用程序中时才能利用框架 由我的图书馆的用户。我已经弄清楚如何编译库以使它本身不包含任何框架,但是一旦我尝试在应用程序中使用它,它就会失败,因为库引用了不存在的框架

我宁愿不强迫我的客户加载他们不需要的框架。 Weak-linking frameworks很酷,但这只是意味着框架不必存在于系统中(例如,对于旧版本的iOS);它的支持仍然被编译成二进制文件。更好的方法是不要求框架完全链接,只有在链接(可选或不相关)时才使用它。

那么,有没有办法在运行时检测到iOS应用程序中是否包含框架,而不仅仅是它是否存在于系统中?

1 个答案:

答案 0 :(得分:0)

你可以使用

if (NSClassFromString(@"FrameworkClass") == nil) {
   // the framework is not available
} else {
   // the framework is avaiable
}