objective-c - 在调用函数之前检查类目标成员资格
问题描述
我有一个UserAccountManager
需要从两个目标访问的类,分别是主 iOS 应用程序和扩展。在初始化期间,此类将调用一个单独的框架,由于它依赖于 AppDelegate,因此只能从主 iOS 应用程序访问。不幸的是,这无法编译,因为该框架在扩展中不可用。
如何检查该框架的目标成员资格,并且仅在可用时才进行调用?
解决方案
您可以使用条件编译。
将-DHAS_APP_DELEGATE
(或者您想调用它)添加到具有 AppDelegate 的目标的“其他 C 标志”构建设置。
然后您可以有条件地编译您的 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
推荐阅读
- sql - 如何根据之前的记录将 SQL 表连接到自身?
- laravel - 具有多种模型的 Laravel 收银员
- reactjs - 安装 React 后,我在 Apps.js 文件中找不到扩展组件
- java - 我的简单凯撒密码程序(java)只循环字母向前而不是向后
- python - 理解顺序条件的行为
- python - 遍历列表列表以找到最大值
- c# - Wpf MVVM:视图到底需要什么?
- javascript - Javascript 在页面更改时保留 URL 参数
- java - 在 Java 中使用循环插入新数组元素(菜鸟问题)
- mongodb - mongo 查询版本(。分隔字符串)并找到大于某个版本