首页 > 解决方案 > 如果框架不存在,Objective-c 在运行时关闭类/代码块

问题描述

我正在创建一个可以包含多个第三方框架的框架。其他第三方框架是通过 cocoapods 安装的。如果存在某个第三方框架,是否可以在示例应用程序编译时检查我的框架,如果不关闭该部分代码或类,则不会引发错误?当框架确实存在时,我想打开代码或类,以便可以使用该类或代码。

我尝试在自己创建的 cocoapods 中使用一些方法(参见代码),但它并没有真正起作用。

__has_include('class.h')

Class klass = NSClassFromString(@"class.h");
return klass != nil;

基本上,即使通过 cocoapods 安装了第三方框架,上面的代码也总是返回 false 或不包含 class.h。

标签: iosobjective-csdkframeworkscocoapods

解决方案


你如何配置你的框架是否安装第三方库?

如果您为您的框架使用多个目标,每个目标都包含通过 cocoapods 安装的一组不同的第三方框架,您可以轻松使用“预处理器宏”(ObjC)或“其他 Swift 标志”(Swift)。

您可以在您的框架构建设置中设置它们,具体取决于该目标中使用的库,并在您的代码中使用 #ifdef (ObjC) 或 #if (swift) 检查它们


推荐阅读