我知道这个话题可能是一个非常常见的问题,但我仍然无法得到解决方案。
首先,我知道有两种方法可以检查操作系统版本
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 的操作系统不知道什么是社交框架。
期待在这里得到一些解决方案。