黑马程序员技术交流社区
标题: 每日小结:分类category [打印本页]
作者: 崔石炫 时间: 2014-9-25 03:11
标题: 每日小结:分类category
分类用于在不修改原有类的代码的情况下给某个类扩充一些方法。
在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]);
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |