微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

iOS:OS版本检查的预处理器

在过去,我使用以下预处理器代码有条件地执行不同iOS版本的代码

#ifdef __IPHONE_OS_VERSION_MIN_required
// target is iOS
    #if __IPHONE_OS_VERSION_MIN_required < 60000
    // target is lower than iOS 6.0
    #else
    // target is at least iOS 6.0
    #endif
#endif

但是对于iOS 7,我有以下问题:

#ifdef __IPHONE_OS_VERSION_MIN_required
// target is iOS
    #if __IPHONE_OS_VERSION_MIN_required < 70000
    // target is lower than iOS 7.0
    NSLog(@"This message should only appear if iOS version is 6.x or lower");
    #else
    // target is at least iOS 7.0
    #endif
#endif

上面的NSLog消息出现在iOS 7下的控制台上.我做错了吗?

编辑:以下代码在iOS 7下运行(模拟器和设备)

NSLog(@"Version %i",__IPHONE_OS_VERSION_MIN_required);

给出:版本60000

解决方法

这是应用程序的部署目标(可以安装应用程序的最低版本),而不是应用程序在设备中运行的版本.

在项目的设置中,您可以设置该字段:

如果你这样改变它,这个输入:

NSLog(@"Version %i",__IPHONE_OS_VERSION_MIN_required);

返回7000

如果你想要的是检查操作系统的实际版本,我建议你这个问题:

How to check iOS version?

但是,它是在运行时完成的,而不是在编译时完成的.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐