ios – 用于测试应用程序扩展是否正在构建中的预处理器宏是什么?

这个问题纯粹是基于公开发布的关于在iOS中引入应用程序扩展的文档.

随着iOS 8中引入了app extensions,现在可以“扩展您的应用程序的自定义功能和内容,并在用户使用其他应用程序时将其提供给用户”.

在我的扩展程序的实现中,我在我的扩展名(模型等)中包含了我的实际应用程序中的一些类.问题是这些类调用UIApplication,这在应用程序扩展中是不可用的,编译器告诉我.

我认为一个简单的解决方案将包含任何调用UIApplication在#if指令.

例如,如果我只想包括代码,如果我在一个模拟器上运行,我会使用:

#if TARGET_IPHONE_SIMULATOR
    // Code Here
#endif

当目标是应用程序扩展名时,是否有类似的定义的宏?

解决方法

您可以定义自己的宏.

在项目设置中,使用顶栏中的下拉列表来选择扩展目标:

然后:

  1. Click Build Settings
  2. Find (or search) Preprocessor Macros under Apple LLVM 6.0 - Preprocessing
  3. Add TARGET_IS_EXTENSION or any other name of your choice in both the debug and release sections.

然后在你的代码中:

#ifndef TARGET_IS_EXTENSION
    // Do your calls to UIApplication
#endif

以上是来客网为你收集整理的ios – 用于测试应用程序扩展是否正在构建中的预处理器宏是什么?全部内容,希望文章能够帮你解决ios – 用于测试应用程序扩展是否正在构建中的预处理器宏是什么?所遇到的程序开发问题。

如果觉得来客网网站内容还不错,欢迎将来客网网站推荐给程序员好友。