objecive-c分类

使用Object-C中的分类,是一种编译时的手段,允许我们通过给一个类添加方法来扩充它(但是通过category不能添加新的实例变量),并且我们不需要访问类中的代码就可以做到,这点和javascript中使用原型来定义属性有点类似。

我们可以为一个类创建一个新的方法,而不需要在代码中编辑类定义。

下面就是定义并使用分类的例子程序,通过下面代码,我们可以给Object-C中的NSString 添加camelCaseString分类,使用camelCaseString方法,就可以去掉一个字符串中的空格,并将原有空格后的单词改写成大写(即将字符串转化为驼峰式)。

  1. #import<Foundation/Foundation.h>
  2. /*
  3. 定义分类的过程大致可分为以下几个步骤:
  4. 第一步、创建一个带有接口的新文件,即创建已有类
  5. 第二步、在新文件中添加需要扩展的方法及方法的实现,即需要添加的分类
  6. */
  7. //NSString表示将要添加分类的类名称,该类必须是已存在的。
  8. //CamelCase是为类添加的方法名称。
  9. //只能添加方法,不能添加变量。
  10. //头文件命名惯例:ClassName+CategoryName.h
  11. @interfaceNSString(CamelCase)
  12. -(NSString*)camelCaseString;
  13. @end
  14. @implementationNSString(CamelCase)
  15. -(NSString*)camelCaseString
  16. {
  17. //调用NSString的内部方法获取驼峰字符串。
  18. //self指向被添加分类的类。
  19. NSString*castr=[selfcapitalizedString];
  20. //创建数组来过滤掉空格,通过分隔符对字符进行组合。
  21. NSArray*array=[castrcomponentsSeparatedByCharactersInSet:
  22. [NSCharacterSetwhitespaceCharacterSet]];
  23. //把数组的字符输出
  24. NSString*output=@"";
  25. for(NSString*wordinarray)
  26. {
  27. output=[outputstringByAppendingString:word];
  28. }
  29. returnoutput;
  30. }
  31. @end
  32. intmain(intargc,constchar*argv[])
  33. {
  34. NSAutoreleasePool*pool=[[NSAutoreleasePoolalloc]init];
  35. NSString*str=@"Mynameisbill.";
  36. NSLog(@"%@",str);
  37. str=[strcamelCaseString];
  38. NSLog(@"%@",str);
  39. [pooldrain];
  40. return0;
  41. }




本文来自:http://blog.csdn.net/yhawaii/article/details/6992094,如需转载,请注明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值