首页 > 代码库 > 黑马程序员学习笔记_OC之给NSString增加分类
黑马程序员学习笔记_OC之给NSString增加分类
---------------------- <a href=http://www.mamicode.com/"http://www.itheima.com"target="blank">ASP.Net+Unity开发、.Net培训、期待与您交流! ---------------------->
黑马程序员学习笔记_OC之给NSString增加分类
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];
---------------------- <a href=http://www.mamicode.com/"http://www.itheima.com"target="blank">ASP.Net+Unity开发、.Net培训、期待与您交流! ---------------------->