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

我正在构build一个静态库来分发给其他人在iOS应用程序中使用,其中我想只有在我的库的用户已经包含在应用程序中的情况下才能利用框架。 我已经想出了如何编译库,使其本身不包含任何框架,但只要我尝试在应用程序中使用它,就会失败,因为库引用了不存在的框架。

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

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

您可以使用

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