首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS:处理TARGET_IPHONE_SIMULATOR宏

iOS:处理TARGET_IPHONE_SIMULATOR宏
EN

Stack Overflow用户
提问于 2016-01-30 00:06:32
回答 2查看 8K关注 0票数 2

我的环境:在OS船长中使用Xcode 6.4的ObjectiveC (10.11.1)。在Xcode中,目标被设置为iOS 8。

TARGET_IPHONE_SIMULATOR总是在下面的代码中解析为true,即使我选择iPad2作为iOS模拟器。

代码语言:javascript
复制
#if TARGET_IPHONE_SIMULATOR
  // block of code
#endif

在选择TARGET_IPHONE_SIMULATOR作为iOS模拟器时,是否应该将iPad2设置为false?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-30 00:12:54

对于任何模拟器的构建,这个宏都是正确的。宏在iPad出现之前很久就已经存在了。回到"iOS“是"iPhone OS”的时候。

所以把它想象成"TARGET_IOS_SIMULATOR“。

当您的代码中有一些只在为模拟的iOS设备构建时才应该编译的内容时,就会使用它。

如果您需要在iPhone模拟器和iPad模拟器之间以不同的方式运行,您可能需要如下所示:

代码语言:javascript
复制
#if TARGET_IPHONE_SIMULATOR
    // This code is only for a simulator
    if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone) {
        // iPhone/iPod touch simulator
    } else {
        // iPad simulator
    }
#endif
票数 2
EN

Stack Overflow用户

发布于 2021-03-21 04:35:22

对于任何使用Swift版本>= 4.1的开发人员来说,最好使用#if targetEnvironment(simulator)。参考资料:目标环境平台条件

代码:

代码语言:javascript
复制
extension UIDevice {
  
  static var isSimulator: Bool {
    #if targetEnvironment(simulator)
    return true
    #else
    return false
    #endif
  }
  
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35096307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档