iphone开发之category使用详解
2012-06-15 15:27
603 查看
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"文件。添加以下代码:
实现Category扩展的方法
接着来到"NSString+RemoveNums.m"文件。添加以下代码。大家可以看到这个方法实际做的事情就是从整个NSString去除掉所有的数字字符。
Step3: 导入Category
在"ViewController.h"文件头部添加以下代码来导入Category
Step4: 测试Category
在 ViewController.h 文件的 viewDidLoad 方法中添加以下代码。
Step5: 使用Category的方法
在Xcode的菜单栏点击 Product -> Run,测试过程中,请注意控制台首先输出的 "ABC 123",然后被方法去除数字后输出的"ABC"
结论
我们都知道添加子类是为某一种对象添加方法的途径,但是为了整个代码更加简洁直观,我们通常会用Category的扩展方法来替代子类的添加。
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 |
接着来到"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 | } |
在"ViewController.h"文件头部添加以下代码来导入Category
1 | #import "NSString+RemoveNums.h" |
在 ViewController.h 文件的 viewDidLoad 方法中添加以下代码。
1 | NSString *stringWithNums = @ "ABC 123" ; |
2 | NSLog(@ "stringWithNums --> %@" ,stringWithNums); |
3 | stringWithNums = [stringWithNums removeNumbersFromString:stringWithNums]; |
4 | NSLog(@ "trimmed stringWithNums --> %@" ,stringWithNums); |
在Xcode的菜单栏点击 Product -> Run,测试过程中,请注意控制台首先输出的 "ABC 123",然后被方法去除数字后输出的"ABC"
结论
我们都知道添加子类是为某一种对象添加方法的途径,但是为了整个代码更加简洁直观,我们通常会用Category的扩展方法来替代子类的添加。
相关文章推荐
- iPhone开发之Category使用详解
- iPhone开发之SQLite使用详解
- Objective-C ,ios,iphone开发基础:picker控件详解与使用,(实现省市的二级联动)
- iphone开发之SQLite使用详解
- [置顶] Objective-C ,ios,iphone开发基础:UIAlertView使用详解
- iphone开发之SQLite使用详解
- iphone开发之线程的使用详解
- 详解iPhone开发应用中如何使用Web视图
- Objective-C ,ios,iphone开发基础:UIAlertView使用详解
- iPhone应用开发 SQLite数据库使用详解
- Objective-C ,ios,iphone开发基础:UIAlertView使用详解
- iOS开发:Category的具体使用详解
- iPhone开发:Objective-C属性修饰关键字使用详解
- Objective-C ,ios,iphone开发基础:picker控件详解与使用,(实现省市的二级联动)
- Objective-C ,ios,iphone开发基础:picker控件详解与使用,(实现省市的二级联动)
- iphone开发之常用控件的使用详解
- iPhone开发之UITextView控件使用详解
- iphone开发中使用动态库(dylib)和动态加载framework (获取iphone的IMSI和设置飞行模式)
- Windows Phone 7开发,进度条ProgressBar使用详解
- [Ext入门]图文详解Ext常见开发工具的安装使用(转)