iOS方法调用时的系统适配

1.获取systemVersion后比判断该调用哪种方法

  • 方法1
NSString *version = [UIDevice currentDevice].systemVersion;
NSCalendar *calendar = nil;
if (version.doubleValue >= 8.0) {
    //如果系统版本号是8.0及以上版本,调用新方法
    calendar = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];
}else{
    //否则调用老方法
    calendar = [NSCalendar currentCalendar];
}
  • 方法2
NSString *version = [UIDevice currentDevice].systemVersion;
NSCalendar *calendar = nil;
if ([version compare:@"8.0"] != NSOrderedAscending) {
    //版本号大于等于8.0
    calendar = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];
}else{
    calendar = [NSCalendar currentCalendar];
}

2.通过FoundationVersionNumber来判断

需要注意的时必须是最新版本的Xcode,如果在低版本的Xcode开发,这些代表高版本的宏还没有定义,一般不常用.

if (NSFoundationVersionNumber >= NSFoundationVersionNumber_iOS_8_0)

3.通过新增类是否存在来判断是否为新版本

// iOS系统版本 >= 8.0 
if (NSClassFromString(@"UIAlertController"))

4.通过新增方法能否调用来判断是否新版本

if ([NSCalendar respondsToSelector:@selector(calendarWithIdentifier:)]) {
    calendar = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];
} else {
    calendar = [NSCalendar currentCalendar];
}

你可能感兴趣的:(iOS方法调用时的系统适配)