黑马软件工程师学习笔记_OC之给NSString增加分类

黑马程序员学习笔记_OC之给NSString增加分类

---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------
 

黑马程序员学习笔记_OC之给NSString增加分类

1、 目的:给某个类扩充一些方法,但不修改原来类的代码,不使用继承。

2、 分为三个步骤

1>新建一个方法类

 

2>声明 @interface类名(分类名称)

                    @end

3>实现 @implementation类名(分类名称)

                    @eng

3、 使用注意1>分类只能增加方法不能增加成员变量

2>分类方法实现中可以访问原来类中声明的成员变量

3>分类可以重写原来类中的实现方法,但是会覆盖原来的方法,会导

致原来的方法不能再用,开发中一般不建议这样做。

4>方法调用优先级:分类(最后参与编译的分类优先)、原来类、父类

4、 NSString增加分类:给NSString增加一个类方法,计算某个字符串中阿拉伯数字个数。

1>    先建一个NSString的分类number

2>    声明:+intnumberCountOfString:(NSString *str

3>    方法实现:

intnumberCountOfString:(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增加一个对象方法,计算某个字符串中阿拉伯数字个数。这种方法更简单。

同上面步骤一样,这里只写方法实现:

intnumberCount

{

       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.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------
 
详细请查看:<a href="http://www.itheima.com" target="blank">www.itheima.com</a>