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];
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容