Category 允許在無源碼情況下為現有類添加方法(不能添加實例變量)。語法:
@interface ClassName (CategoryName) // 方法聲明 @end @implementation ClassName (CategoryName) // 方法實現 @end
#import@interface NSString (SayHi) - (void)sayHi; // 示例方法 - (NSString *)firstCharacter; // 獲取首字母大寫 @end
#import "NSString+SayHi.h"
@implementation NSString (SayHi)
- (void)sayHi {
NSLog(@"你好你是牛逼的字符串");
}
- (NSString *)firstCharacter {
// substringToIndex:1 取第一個字符,uppercaseString 轉大寫
return [[self substringToIndex:1] uppercaseString];
}
@end
NSString *str = @"hello"; NSLog(@"%@", [str firstCharacter]); // 輸出 "H" [str sayHi]; // 輸出問候語
substringToIndex: 參數為長度,1 表示取索引 0 的字符uppercaseString 返回新字符串,不修改原對象此範例展示了 Category 為系統類添加實用工具方法的標準模式。