在调用函数之前检查类目标成员资格

时间:2018-05-20 22:06:27

标签: objective-c

我有一个类UserAccountManager需要可以从两个目标访问,分别是主iOS应用和扩展。在初始化期间,此类将调用一个单独的框架,由于它依赖于AppDelegate,只能从主iOS应用程序访问。不幸的是,这不能编译,因为扩展中没有该框架。

如何检查该框架的目标成员资格,并且仅在可用时才进行调用?

1 个答案:

答案 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