我知道这个话题可能是一个非常常见的问题,但我仍然无法得到解决方案。
首先,我知道有两种方法可以检查操作系统版本
1)
[[UIDevice currentDevice] systemVersion]
这绝对不是我正在寻找的东西,因为这是在运行时使用的,我正在看的是在编译期间可以做的事情。
2)
#if __IPHONE_6_0
// do something
#endif
这是我希望它可以工作的东西,但事实并非如此。这里有2个问题:
i)在iPhone模拟器5.0版上运行,我发现#if __IPHONE_6_0
正在返回TRUE值。我认为只有当版本是6.0或更高版本时它才会为TRUE?
ii)当我在iPad模拟器上测试时,同样的事情发生了。这个宏也能在iPad上运行吗?
我希望在编译期间完成它的原因是因为我使用的是最新的iOS 6.0社交框架,但我希望我的应用程序也支持旧版本(分4.3)。问题是我的代码的一部分是使用社交框架的东西。因此,我必须进行宏检查,以了解此设备是否支持社交框架,如果不是,则不编译该特定社交框架的代码。如果我不这样做,我将在编译期间收到错误,因为低于版本6的操作系统不知道什么是社交框架。
期待在这里获得一些解决方案。
答案 0 :(得分:0)
你不能为此目的使用宏,因为编译宏时使用你的版本,它不适用于其他设备(这似乎是显而易见的......)