A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 崔石炫 中级黑马   /  2014-9-25 03:11  /  952 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

分类用于在不修改原有类的代码的情况下给某个类扩充一些方法。
Xcode中新建一个category分类,取一个分类名,并选择需要扩充的类。
比如:
Category : QMS
Category on : Person
即新建一个名为QMS的分类,用来为Person类做一些扩充。
分类一般应用场景为给系统自带的类扩充一些自有的方法,比如给NSString扩充计算字符串中阿拉伯数字个数的类方法和对象方法:
  1. @interface NSString (MyCategory)
  2. + (int)numberCountOfString:(NSString *)str;
  3. - (int)numberCount;
  4. @end

  5. @implementation NSString (MyCategory)
  6. + (int)numberCountOfString:(NSString *)str
  7. {
  8.         return [str numberCount];
  9. }
  10. - (int)numberCount
  11. {
  12.         int cnt = 0;
  13.         for(int i = 0 ; i < self.length ; i++)
  14.         {
  15.                 unichar c = [self characterAtIndex:i];
  16.                 if(c >= ‘0’ && c <= ‘9’)
  17.                 {
  18.                         cnt++;
  19. }
  20. }
  21. return cnt;
  22. }
  23. @end
复制代码

这里我们新建了一个名为MyCategory的分类,为NSString类进行扩充,以便对字符串进行处理,计算出其中包含的阿拉伯数字0-9的字符个数。我们可以通过如下方式使用:
NSString *str = @”hymmdhs3mkndmkc652,dh”;
NSLog(@”%@中有%d个阿拉伯数字” , str , [str numberCount]);

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马