0

我知道这个话题可能是一个非常常见的问题,但我仍然无法得到解决方案。

首先,我知道有两种方法可以检查操作系统版本

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 的操作系统不知道什么是社交框架。

期待在这里得到一些解决方案。

4

1 回答 1

0

您不能为此目的使用宏,因为当您编译宏时使用您的版本,它不适用于其他设备(这似乎很明显......)

于 2012-12-03T07:28:10.693 回答