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];
}