如何在Objective C中检测iOS版本?

时间:2017-05-15 03:34:29

标签: ios objective-c ios7 macros ios6

我正在使用Firebase 3.7.x来存储我的数据库。 Firebase 3.7.x支持iOS 7.0或更高版本,但我的项目支持iOS 6.0。所以我想检测设备中的iOS版本来调用@import Firebase。这样的事情:

if IOS_7_OR_HIGHER
@import Firebase
else
//do nothing

if IOS_7_OR_HIGHER
- (void)dosomething{}
else
- (void)donothing {}

我在swift中了解if #available。在Objective C中是否有像if #available这样的代码?或者有没有办法导入适用于iOS 7或更高版本的Firebase并禁用iOS6的禁用?

感谢。

3 个答案:

答案 0 :(得分:1)

您可以使用

获取设备系统版本
-(NSString*)getDeviceVersion{
    return [[UIDevice currentDevice] systemVersion];
}

它会将设备版本作为字符串返回,例如@“4.0”。

希望对你有所帮助。

答案 1 :(得分:0)

尝试以下代码:

    NSArray *osVersion = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];

    if ([[osVersion objectAtIndex:0] intValue] >= 7) {
        // iOS-7 or greater
    } else if ([[osVersion objectAtIndex:0] intValue] == 6) {
        // iOS-6 code
    } else if ([[osVersion objectAtIndex:0] intValue] > 2) {
        // iOS-3,4,5 code
    } else {
        // iOS-1,2... code
    }

答案 2 :(得分:-2)

要回答您的问题,您可以这样做:

#ifdef __IPHONE_6_0
    //Do something patchy!
#else
    @import Firebase
#endif 

谦虚的建议:您可以考虑升级您的应用。

来自Apple的最新iOS版统计计数器显示,只有5%的设备仍然拥有iOS 8,7或< = 6.意味着,你应该放弃对所有这些版本的支持,否则你应该开始支持iOS9起。

通过这样做,您将获得所有最新的iOS功能,并且您将来永远不必制作此类补丁。

enter image description here

来源:https://developer.apple.com/support/app-store/