#import "ViewController.h"
// 判断系统版本的宏
#define iOS(v) ([UIDevice currentDevice].systemVersion.doubleValue >= (v))
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
/*
[@"jack" respondsToSelector:@selector(length)] // 判断是否有-length这个对象方法
[@"jack" length]
[NSString respondsToSelector:@selector(length)] // 判断是否有+length这个类方法
[NSString length]
[NSString instancesRespondToSelector:@selector(length)] // 判断是否有-length这个对象方法
[@"" length]
respondsToSelector:方法的作用:
判断左边对象能否调用右边的方法
instancesRespondToSelector:方法的作用:
判断左边类的实例对象能否调用右边的方法
*/
// btn就是UIButton类的实例对象(instance)
// UIButton *btn = [[UIButton alloc] init];
NSCalendar *calendar = nil;
if ([NSCalendar respondsToSelector:@selector(calendarWithIdentifier:)]) {
calendar = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];
} else {
calendar = [NSCalendar currentCalendar];
}
NSString *version = [UIDevice currentDevice].systemVersion;
/*
NSOrderedAscending 升序(右边 > 左边)
NSOrderedSame 相等、相同
NSOrderedDescending 降序(右边 < 左边)
*/
if ([@"" respondsToSelector:@selector(boundingRectWithSize:options:attributes:context:)]) { // iOS系统版本 >= 7.0
}
if (NSClassFromString(@"UIAlertController")) { // iOS系统版本 >= 8.0
}
if (NSFoundationVersionNumber >= NSFoundationVersionNumber_iOS_8_0) { // iOS系统版本 >= 8.0
}
if ([version compare:@"8.0"] != NSOrderedAscending) { // iOS系统版本 >= 8.0
}
if (version.doubleValue >= 8.0) { // iOS系统版本 >= 8.0
}
/*
NSCalendar *calendar = nil;
if (iOS系统版本 >= 8.0) {
calendar = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];
} else {
calendar = [NSCalendar currentCalendar];
}*/
}
@end
方法的系统适配
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 有一些方法在很久之前就有的,在高版本的系统上使用可能会有问题,此时就需要判断用户的系统版本来选择执行哪一种方法了....
- 【蝴蝶效应】 蝴蝶效应:上个世纪70年代,美国一个名叫洛伦兹的气象学家在解释空气系统理论时说,亚马逊雨林一只蝴蝶...