我已经将一个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
答案 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