类目(Category)概述
来源:互联网 发布:电脑怎么使用手机网络 编辑:程序博客网 时间:2024/06/10 15:19
原址:http://www.oschina.net/question/213217_53369?from=20120520
Categories可以为一个对象添加方法而不需要增加该类的子类或者更改当前的对象。实际上Categories通常被用来为已经存在的类添加方法,比如你可以自己为 NSString 字符串类添加你自己的方法。
Step1: 创建项目
启动Xcode -> File -> New -> Project. 然后创建一个 iOS Single View Applciation。这里我们命名为 Categories.
Step2: 创建Category
现在来创建一个Category来为NSString添加扩展方法。点击 File -> New -> File 然后选择 Cocoa Touch Objective-C category. 这里我们命名为 RemoveNums。记得要从 Category on 下拉框选择 NSString,最后点击Create按钮旁的Next按钮。
声明Category扩展的方法。
选择 "NSString+RemoveNums.h"文件。添加以下代码:
1
@interface NSString (RemoveNums)
2
- (NSString *)removeNumbersFromString:(NSString *)string;@end
实现Category扩展的方法
接着来到"NSString+RemoveNums.m"文件。添加以下代码。大家可以看到这个方法实际做的事情就是从整个NSString去除掉所有的数字字符。
1
- (NSString *)removeNumbersFromString:(NSString *)string
2
{
3
NSString *trimmedString = nil;
4
NSCharacterSet *numbersSet = [NSCharacterSet characterSetWithCharactersInString:@
"0123456789"
];
5
trimmedString = [string stringByTrimmingCharactersInSet:numbersSet];
6
return
trimmedString;
7
}
Step3: 导入Category
在"ViewController.h"文件头部添加以下代码来导入Category
1
#import "NSString+RemoveNums.h"
Step4: 测试Category
在 ViewController.h 文件的 viewDidLoad 方法中添加以下代码。
1
NSString *stringWithNums = @
"ABC 123"
;
2
NSLog(@
"stringWithNums --> %@"
,stringWithNums);
3
stringWithNums = [stringWithNums removeNumbersFromString:stringWithNums];
4
NSLog(@
"trimmed stringWithNums --> %@"
,stringWithNums);
Step5: 使用Category的方法
在Xcode的菜单栏点击 Product -> Run,测试过程中,请注意控制台首先输出的 "ABC 123",然后被方法去除数字后输出的"ABC"
结论
我们都知道添加子类是为某一种对象添加方法的途径,但是为了整个代码更加简洁直观,我们通常会用Category的扩展方法来替代子类的添加。
- 类目(Category)概述
- 类目(CATEGORY)
- OC中的类目(category)
- category类目
- 类目Category
- 写个类目Category
- Category的用法(类目)
- OC学习 -- Category(类目)
- OCdemo-07 CateGory 类目
- Objective-C 之类目(category)的应用
- Objective-C 之类目(category)的应用
- Objective-C 之类目(category)的应用
- Objective-C 之类目(category)的应用
- OC 类目(category) 延展(extension) 协议(protocol)
- 类目 Category Extension 协议 Protocol
- oc NSDate / Category类目 / 延展
- OC第七讲(Category类目)
- OC--category(类目、分类、类别)
- iphone程序内调用谷歌地图
- 系统字节序检测的两种方法
- 黑马程序员学习笔记八——java高新技术
- iphone调用系统电话、浏览器、地图、邮件等
- SIM300 AT
- 类目(Category)概述
- 让一个UIImageView响应点击事件
- 黑马程序员学习笔记七——多线程
- NSTimer的用法
- SQL注入式攻击
- JSP 引擎工作原理
- uva 113 - Power of Cryptography
- com.opensymphony.xwork2.spring.SpringObjectFactory.getClassInstance
- .net c# 用代码来添加断点并且在Visual Studio输出窗口中显示自定义信息