我正在查看Apple的Lister(适用于Apple Watch,iOS和OS X)示例。该示例对iOS和OS X执行测试:
#import <TargetConditionals.h>
#if (TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR)
@import ListerKit;
#elif TARGET_OS_MAC
@import ListerKitOSX;
#endif
但是,没有测试TARGET_OS_WATCH
或类似的测试。抢watch
入TargetConditionals.h
没有带来任何成功:
$ cat /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer
/SDKs/iPhoneOS7.1.sdk/usr/include/TargetConditionals.h | grep -i watch
$
从TargetConditionals.h
,我知道有:
这些条件指定所生成的代码将在哪个操作系统中 运行。MAC / WIN32 / UNIX条件是互斥的。EMBEDDED / IPHONE 条件是TARGET_OS_MAC的变体。 TARGET_OS_MAC-生成代码将在Mac OS上运行 TARGET_OS_WIN32-生成代码将在32位Windows上运行 TARGET_OS_UNIX-生成代码将在某些非Mac OS X Unix上 运行TARGET_OS_EMBEDDED-生成代码将在嵌入式OS TARGET_OS_MAC TARGET_OS_EMBEDDED下运行-生成代码将在iPhone OS上运行 是TARGET_OS_MAC的变体。 TARGET_IPHONE_SIMULATOR-生成在iPhone模拟器下运行的代码
问题:苹果手表是否有预处理器?
我正在使用ios进行标记,但不确定该问题的正确操作系统。
下面的列表是从iPhone的编译而来的TargetConditionals.h
。Simulator和OS X是相似的(它们只是将不同的位设置为1):
#define TARGET_OS_MAC 1
#define TARGET_OS_WIN32 0
#define TARGET_OS_UNIX 0
#define TARGET_OS_EMBEDDED 1
#define TARGET_OS_IPHONE 1
#define TARGET_IPHONE_SIMULATOR 0
问题:手表使用TARGET_OS_EMBEDDED
吗?手表省略了 TARGET_OS_IPHONE
吗?
从watchOS 2.0开始,您可以在手表上运行本机代码,因此这是一个更相关的问题。
我正在使用watchOS 2的第一个早期Beta版,因此可能会有所变化,但是现在TARGET_OS_WATCH
在watchOS上将其设置为1。
(另外请注意:TARGET_OS_IPHONE
在watchOS上也设置为1,尽管TARGET_OS_IOS
为0。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句