16 objective-c target ios ios-app-extension ios8-today-widget
我有一个简单的应用程序,它也有iOS 8今日扩展(或小部件).我正在做的一件事是在我的应用程序和我的小部件之间共享代码类,因为这显然使我不必拥有相同代码的多个副本.除了我遇到的一个问题之外,这一切都很UIApplication sharedApplication好用,其中一个API 会出现错误,因为你无法在iOS 8 Widgets上使用它.
所以我想到的是,有一个简单的if语句,用于检查最终目标是否是本机应用程序,或者如果它是iOS 8小部件,然后根据需要添加代码.那会有用吗?
这是我的代码:
if (UIInterfaceOrientationIsLandscape([[UIApplication sharedApplication] statusBarOrientation]))
{
CGSize ssz = sz;
sz = CGSizeMake(ssz.height, ssz.width);
}
Run Code Online (Sandbox Code Playgroud)
如何更改此代码,以便可以执行以下操作之一:
我希望我的问题有道理,感谢你的时间,丹.
Tom*_*ton 31
运行时检查已经结束,因为Xcode不会让你编译使用的扩展代码sharedApplication.它必须是编译时检查.
不幸的是,这个检查不是内置的,你必须添加它.你需要做一些事情:
TODAY_EXTENSION,添加-DTODAY_EXTENSION:
在您的代码中,使用类似的方法检查此宏
#ifndef TODAY_EXTENSION
... app-only code here ...
#endif
Run Code Online (Sandbox Code Playgroud)
相反,只应存在于扩展中的代码看起来像
#ifdef TODAY_EXTENSION
... extension-only code here ...
#endif
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
6542 次 |
| 最近记录: |