类目(Category)概述

类目(Category)概述,第1张

概述原址:http://www.oschina.net/question/213217_53369?from=20120520 Categories可以为一个对象添加方法而不需要增加该类的子类或者更改当前的对象。实际上Categories通常被用来为已经存在的类添加方法,比如你可以自己为 NSString 字符串类添加你自己的方法。 Step1: 创建项目 启动Xcode -> File -> New

原址: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     returntrimmedString;
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)概述所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1058487.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存