Step1: 創建項目
啟動Xcode -> File -> New -> Project. 然後創建一個 iOS Single View Applciation。這裡我們命名為 Categories.
Step2: 創建Category
現在來創建一個Category來為NSString添加擴展方法。點擊 File -> New -> File 然後選擇 Cocoa Touch Objective-C category. 這裡我們命名為 RemoveNums。記得要從 Category on 下拉框選擇 NSString,最後點擊Create按鈕旁的Next按鈕。
聲明Category擴展的方法。
選擇 "NSString+RemoveNums.h"文件。添加以下代碼:
1
@interface NSString (RemoveNums)
2
- (NSString *)removeNumbersFromString:(NSString *)string;@end
實現Category擴展的方法
接著來到"NSString+RemoveNums.m"文件。添加以下代碼。大家可以看到這個方法實際做的事情就是從整個NSString去除掉所有的數字字符。
1
- (NSString *)removeNumbersFromString:(NSString *)string
2
{
3
NSString *trimmedString = nil;
4
NSCharacterSet *numbersSet = [NSCharacterSet characterSetWithCharactersInString:@
"0123456789"
];
5
trimmedString = [string stringByTrimmingCharactersInSet:numbersSet];
6
return
trimmedString;
7
}
Step3: 導入Category
在"ViewController.h"文件頭部添加以下代碼來導入Category
1
#import "NSString+RemoveNums.h"
Step4: 測試Category
在 ViewController.h 文件的 viewDidLoad 方法中添加以下代碼。
1
NSString *stringWithNums = @
"ABC 123"
;
2
NSLog(@
"stringWithNums --> %@"
,stringWithNums);
3
stringWithNums = [stringWithNums removeNumbersFromString:stringWithNums];
4
NSLog(@
"trimmed stringWithNums --> %@"
,stringWithNums);
Step5: 使用Category的方法
在Xcode的菜單欄點擊 Product -> Run,測試過程中,請注意控制台首先輸出的 "ABC 123",然後被方法去除數字後輸出的"ABC"
結論
我們都知道添加子類是為某一種對象添加方法的途徑,但是為了整個代碼更加簡潔直觀,我們通常會用Category的擴展方法來替代子類的添加。