我有一个类UserAccountManager
需要可以从两个目标访问,分别是主iOS应用和扩展。在初始化期间,此类将调用一个单独的框架,由于它依赖于AppDelegate,只能从主iOS应用程序访问。不幸的是,这不能编译,因为扩展中没有该框架。
如何检查该框架的目标成员资格,并且仅在可用时才进行调用?
答案 0 :(得分:1)
您可以使用条件编译。
将-DHAS_APP_DELEGATE
(或者你想称之为)添加到“其他C标志”构建设置到具有AppDelegate的目标。
然后你可以有条件地编译你的ObjC代码。
#ifdef HAS_APP_DELEGATE
// Call to framework that depends on AppDelegate
#else
// Do something else instead
#endif
如果您只想跳过对框架的调用,则可以忽略else分支。您也可以在执行导入时使用#ifdef
,以便仅在可以使用时导入框架。
这是一个可能包含其他方法的问题:Conditional compilation check for framework before importing