San*_*aus 16 preprocessor ios ios8 ios-app-extension
此问题完全基于有关在iOS中引入应用程序扩展的公开发布的文档.
随着iOS 8中的应用扩展程序的推出,现在可以"扩展您的应用程序之外的自定义功能和内容,并在用户使用其他应用程序时将其提供给用户".
在我的扩展实现中,我在我的扩展(模型等)中包含了我的实际应用程序中的一些类.问题是这些类进行调用UIApplication,这在app扩展中是不可用的,编译器告诉我.
我认为一个简单的解决方案就是UIApplication在#if指令中包含任何调用.
例如,如果我想在模拟器上运行时只包含代码,我会使用:
#if TARGET_IPHONE_SIMULATOR
// Code Here
#endif
Run Code Online (Sandbox Code Playgroud)
当目标是应用程序扩展时,是否有类似的定义宏?
San*_*aus 17
您可以定义自己的宏.
在项目设置中,使用顶部栏中的下拉列表选择您的扩展目标:

然后:
- 点击
Build Settings- 查找(或搜索)
Preprocessor Macros下Apple LLVM 6.0 - PreprocessingTARGET_IS_EXTENSION在调试和发布部分中添加或您选择的任何其他名称.
然后在你的代码中:
#ifndef TARGET_IS_EXTENSION
// Do your calls to UIApplication
#endif
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5620 次 |
| 最近记录: |