在过去,我使用以下预处理器代码有条件地执行不同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
如果你想要的是检查操作系统的实际版本,我建议你这个问题:
但是,它是在运行时完成的,而不是在编译时完成的.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。