分类用于在不修改原有类的代码的情况下给某个类扩充一些方法。 在Xcode中新建一个category分类,取一个分类名,并选择需要扩充的类。 比如: Category : QMS Category on : Person 即新建一个名为QMS的分类,用来为Person类做一些扩充。 分类一般应用场景为给系统自带的类扩充一些自有的方法,比如给NSString扩充计算字符串中阿拉伯数字个数的类方法和对象方法: - @interface NSString (MyCategory)
- + (int)numberCountOfString:(NSString *)str;
- - (int)numberCount;
- @end
- @implementation NSString (MyCategory)
- + (int)numberCountOfString:(NSString *)str
- {
- return [str numberCount];
- }
- - (int)numberCount
- {
- int cnt = 0;
- for(int i = 0 ; i < self.length ; i++)
- {
- unichar c = [self characterAtIndex:i];
- if(c >= ‘0’ && c <= ‘9’)
- {
- cnt++;
- }
- }
- return cnt;
- }
- @end
复制代码
这里我们新建了一个名为MyCategory的分类,为NSString类进行扩充,以便对字符串进行处理,计算出其中包含的阿拉伯数字0-9的字符个数。我们可以通过如下方式使用: NSString *str = @”hymmdhs3mkndmkc652,dh”; NSLog(@”%@中有%d个阿拉伯数字” , str , [str numberCount]);
|