Apple Watch的预处理器宏?

w

我正在查看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或类似的测试watchTargetConditionals.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模拟器下运行的代码

问题:苹果手表是否有预处理器?


我正在使用标记,但不确定该问题的正确操作系统。

下面的列表是从iPhone的编译而来的TargetConditionals.hSimulator和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吗?

leremjs

从watchOS 2.0开始,您可以在手表上运行本机代码,因此这是一个更相关的问题。

我正在使用watchOS 2的第一个早期Beta版,因此可能会有所变化,但是现在TARGET_OS_WATCH在watchOS上将其设置为1。

(另外请注意:TARGET_OS_IPHONE在watchOS上也设置为1,尽管TARGET_OS_IOS为0。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章