1、 目的: 给某个类扩充一些方法,但不修改原来类的代码,不使用继承。
2、 分为三个步骤 : 1> 新建一个方法类
2> 声明 @interface 类名(分类名称)
@end
3> 实现 @implementation 类名(分类名称)
@eng
3、 使用注意 : 1> 分类只能增加方法不能增加成员变量
2> 分类方法实现中可以访问原来类中声明的成员变量
3> 分类可以重写原来类中的实现方法,但是会覆盖原来的方法,会导
致原来的方法不能再用,开发中一般不建议这样做。
4> 方法调用优先级:分类(最后参与编译的分类优先)、原来类、父类
4、 给 NSString 增加分类 :给 NSString 增加一个类方法,计算某个字符串中阿拉伯数字个数。
1> 先建一个 NSString 的分类 number
2> 声明: + ( int ) numberCountOfString :( NSString * ) str ;
3> 方法实现:
( int ) numberCountOfString :( NSString * ) str ;
{
intcount = 0;
for(inti = 0;i<str.length;i++)
{
unicharc = [str characterAtIndex : i];
if(c>=’0’&&c<=’9’)
{
count++;
}
}
return count;
}
主函数中的调用为: intcount = [NSString numberCountOfString:@”56g78nbc”];
5、 给 NSString 增加分类:给 NSString 增加一个对象方法,计算某个字符串中阿拉伯数字个数。这种方法更简单。
同上面步骤一样,这里只写方法实现:
( int ) numberCount
{
intcount = 0;
for(inti = 0;i<str.length;i++)
{
unicharc = [self characterAtIndex : i];
if(c>=’0’&&c<=’9’)
{
count++;
}
}
return count;
}
主函数调用: intcount = [@”56g78nbc” numberCount];
原文地址http://www.tuicool.com/articles/IN7zye