前言
今天看别人的代码,看到一个.m
类中,掺杂了一个static修饰的方法,然后上网查了查,发现是C语言形式的类方法写法
。
例子
这里写个例子来验证下
- (void)viewDidLoad {
[super viewDidLoad];
char *a = "c string";
NSString *b = @"length change over 100000";
NSString *aString = [NSString stringWithUTF8String:a];
NSLog(@"OC类方法调用 aString长度是否大于10? %d",[[self class] normalPlusMethodWithString:aString]);
NSLog(@"C写法,方法调用 aString长度是否大于10? %d",isLengthWhetherLargerThan10(aString));
NSLog(@"OC类方法调用 b长度是否大于10? %d",[[self class] normalPlusMethodWithString:b]);
NSLog(@"C写法,方法调用 b长度是否大于10? %d",isLengthWhetherLargerThan10(b));
}
+ (BOOL)normalPlusMethodWithString:(NSString *)str {
return str.length > 10;
}
static BOOL isLengthWhetherLargerThan10(NSString *str) {
return str.length > 10;
}
//控制台 输出
//OC类方法调用 aString长度是否大于10? 0
//C写法,方法调用 aString长度是否大于10? 0
//OC类方法调用 b长度是否大于10? 1
//C写法,方法调用 b长度是否大于10? 1