Categories可以为一个对象添加方法而不需要增加该类的子类或者更改当前的对象。实际上Categories通常被用来为已经存在的类添加方法,比如你可以自己为 NSString 字符串类添加你自己的方法。
声明Category扩展的方法。
选择 "NSString+RemoveNums.h"文件。添加以下代码:
@interface NSString (RemoveNums)
- (NSString *)removeNumbersFromString:(NSString *)string;
@end
实现Category扩展的方法
接着来到"NSString+RemoveNums.m"文件。添加以下代码。大家可以看到这个方法实际做的事情就是从整个NSString去除掉所有的数字字符。
- (NSString *)removeNumbersFromString:(NSString *)string
{
NSString *trimmedString = nil;
NSCharacterSet *numbersSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
trimmedString = [string stringByTrimmingCharactersInSet:numbersSet];
return trimmedString;
}
导入Category
在"ViewController.h"文件头部添加以下代码来导入Category
#import "NSString+RemoveNums.h"
测试Category
在 ViewController.h 文件的 viewDidLoad 方法中添加以下代码。
NSString *stringWithNums = @"ABC 123";
NSLog(@"stringWithNums --> %@",stringWithNums);
stringWithNums = [stringWithNums removeNumbersFromString:stringWithNums];
NSLog(@"trimmed stringWithNums --> %@",stringWithNums);
使用Category的方法
在Xcode的菜单栏点击 Product -> Run,测试过程中,请注意控制台首先输出的 "ABC 123",然后被方法去除数字后输出的"ABC"