前言
今天看別人的代碼,看到一個.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