TARGET_OS_IOS,TARGET_OS_TV和模拟器

时间:2016-12-20 15:52:21

标签: ios objective-c swift xcode tvos

我已经将一个iOS应用程序“移植”到了Apple TV上,因为我真的希望尽可能地分享资源,所以我不得不针对iOS和其他一些代码来定位TVOS。 我尝试过像:

#if TARGET_OS_TV

#if TARGET_OS_IOS

但是当我在iOS或电视模拟器上启动应用程序时,此代码不起作用。我认为iPhone模拟器只执行TARGET_OS_IOS下的代码......但我错了。哪种方法是针对iOS和TV的目标,保留模拟器正确执行?

我可能需要的代码示例是:

#if TARGET_OS_IOS 
    DoSomethingWithiOS() // This should work also on iOS sim
#elseif TARGET_OS_TV
    DoSomethingWithOSTV() // This should work also on TV sim
#endif

1 个答案:

答案 0 :(得分:1)

适合像我一样寻找平台宏的人。

在ObjC中,将iOS的TARGET_OS_IOS和tvOS的TARGET_OS_TV用于下一个:

#if TARGET_OS_IOS
    /// [something doIOS];
#elif TARGET_OS_TV
    /// [something doTVOS];
#else
    /// Perhaps watchOS or macOS?
#endif