Object-C中的Category其实是一种对于类的方法的扩充,有些类似于类的继承,但是和继承还是不一样的。下面我

们通过一个例子还说明一个OC中的Category的不同。

首先是.h文件,一般的命名规范为这样NSString+ReverseString.h,具体的代码如下

//
//  NSString+ReverseString.h
//  Catagory
//
//  Created by bird on 12-10-25.
//  Copyright (c) 2012年 bird. All rights reserved.
//#import <Foundation/Foundation.h>@interface NSString (ReverseString)- (id) reverseString;@end

然后是他的实现文件,具体如下

//
//  NSString+ReverseString.m
//  Catagory
//
//  Created by bird on 12-10-25.
//  Copyright (c) 2012年 bird. All rights reserved.
//#import "NSString+ReverseString.h"@implementation NSString (ReverseString)- (id) reverseString
{//这里的self表示字符串本身,所以length表示字符串本身的长度NSUInteger len = [self length];NSMutableString *retStr  = [NSMutableString stringWithCapacity:len];while(len>0){//从后取一个字符unichar c = [self characterAtIndex:--len];NSLog(@"c is %C",c);NSString *s = [NSString stringWithFormat:@"%C",c];[retStr appendString:s];}return retStr;
}@end

可以看到很多类的使用,然后是主文件来调用一下

//
//  main.m
//  Catagory
//
//  Created by bird on 12-10-25.
//  Copyright (c) 2012年 bird. All rights reserved.
//#import <Foundation/Foundation.h>
#import "NSString+ReverseString.h"int main(int argc, const char * argv[])
{@autoreleasepool {NSString *string = @"测试样例hello";NSString *retString = [string reverseString];NSLog(@"%@",retString);}return 0;
}

可以看出,使用Category扩展的方法有点类似于这个类本来就存在的方法,但是实际上不是这样的。

Object-C中的Category相关推荐

  1. python中的object是什么意思_Python object类中的特殊方法代码讲解

    python版本:3.8class object: """ The most base type """ # del obj.xxx或del ...

  2. Thread和Object类中关于线程的相关方法

    Thread和Object类中线程的7个重要方法概览 类 方法名称 简介 Thread sleep相关 相关表示sleep所有的重载方法,参数不同,实际作用大同小异 Thread join() 等待其 ...

  3. Objective-C中的Category

    转自:Objective-C中的Category Objective-C中的Category也是非常常用的功能之一.category可以为已经存在的类增加方法,而不需要增加一个子类,另外categor ...

  4. object类中的equals与自定义equals方法详解

    object类中的equals与自定义equal方法详解 1.this怎么理解?this == obj表示什么? this就是当前你new出来的对象,这里指谁调用equal方法this指的就是谁,ob ...

  5. String类中的equals方法与Object类中的equals方法的不同点

    1.首先我们看看Object类中的equals方法 public boolean equals(Object obj) {return (this == obj);} 我们可以看出Object类中判断 ...

  6. 重写Java Object类中的equals()方法

    Java中的Object类中的equals方法 Object类的equals方法 重写Object类的equals()方法 Person类默认继承了Object类,所以可以使用Object类的equa ...

  7. wait/notify/notifyAll在Object类中

    wait/notify/notifyAll在Object类中 因为我们在使用synchronized锁 对象锁可以是任意对象,所以wait/notify/notifyAll需要放在Object类中. ...

  8. Object Pascal 中类型

    Object Pascal 中类型的一些注意 2010-04-16 14:15 --------------------------------------------------------- 原创 ...

  9. Synchronized结合Java Object对象中的 wait,notify,notifyAll

    前面我们在讲synchronized的时候,发现被阻塞的线程什么时候被唤醒,取决于获得锁的线程什么时候执行完同步代码块并且释放锁.那怎么做到显示控制呢?我们就需要借助一个信号机制: 在Object对象 ...

  10. Object类中的两个方法——wait和notify使用总结

    Object类中的wait .和 notify方法是用来处理线程的方法,既然定义在Object类中,两个方法的重要程度可见一斑: 两个方法的使用上都很复杂:通过阅读API获得更多对方法的理解: The ...

最新文章

  1. HDU(1847)Good Luck in CET-4 Everybody!
  2. BBR在实时音视频领域的应用
  3. python中set函数是什么数据类型_阿博Python之路-详解Set数据类型
  4. 面试官: 平时开发中你用过读写锁吗?
  5. Oracle入门(七A)之表空间配额(quota)
  6. py程序员写代码的习惯养成 防止想到什么写什么
  7. Java继承注意事项难点理解
  8. linux ssh非交互脚本,sshpass-Linux命令之非交互SSH
  9. 体验 DreamSpark
  10. SQL Server 日期转换格式
  11. 3.用户画像:方法论与工程化解决方案 --- 标签数据存储
  12. 第六章 静电场中的导体和电介质
  13. JavaWeb项目生成PDF文件添加水印图片并导出
  14. windows l2tp pptp设置
  15. 世界为什么是五彩缤纷
  16. Sick编码器CanOpen通信
  17. 图论专题1(网络流)
  18. win10 任务栏通知区图标不见了
  19. input type=button与asp:button的区别,以及runat=server的作用
  20. [POI2005] SZA-Template

热门文章

  1. python输出宽度是什么意思_python字符串格式化输出的时候类似{0:.3f}是什么意思?...
  2. 李炎恢ECMAScript6 / ES6+(二)
  3. HTML5(李炎恢)学习笔记二 ------------- HTML5的结构
  4. 更新中——simulink模块【合集】
  5. pr值高的域名对网站有什么价值?
  6. Python通过人脸识别全面分析好友,一起看透你的“朋友圈”!
  7. 宇宙大爆炸前后发生的事件
  8. php中文数字转阿拉伯数字,中文数字转阿拉伯数字
  9. Glide加载图片完成的回调
  10. 峰值检测(个人笔记)