iOS和OSX代码的宏条件

时间:2015-01-18 18:32:21

标签: ios objective-c cocoa cocoa-touch macros

我需要在我的共享库中支持iOS和OSX,它是用于调整iOS和OSX代码的最佳宏/实践

波纹管代码由于某种原因不起作用:/

- (NSString *)hostName {
    #ifdef TARGET_OS_IPHONE
        return [[UIDevice currentDevice] name];
    #elif TARGET_OS_MAC
        return [[NSHost currentHost] localizedName];
    #endif
}

1 个答案:

答案 0 :(得分:7)

两个问题:

  1. 使用#if而不是#ifdef
  2. 首先检查TARGET_OS_IPHONE,因为两个平台的TARGET_OS_MAC定义为1
  3. 请参阅: Which conditional compile to use to switch between Mac and iPhone specific code?