OC之给NSString增加分类(分类的特点)
2015-07-31 16:44
302 查看
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
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
相关文章推荐
- hdu4003Find Metal Mineral 树形dp+分组背包
- mobile web开发 图片展示控件PhotoSwipe android手势放大功能
- python range()函数
- Atom飞行手册翻译: 2.5 查找和替换
- 将多个字符串高亮显示之TTTAttributedLabel
- 20150727 JavaScript入门学习笔记
- 关于iOS控件全局样式统一设定问题
- linux apache2 tomcat7 mod_jk 整合
- windows使用计划任务定时执行kettle资源库中的job
- iOS开发——Xcode基本操作
- Spinner(实现下拉列表)
- java中引用js文件
- Linux下软件安装方法汇总
- 使用sbt创建scala项目
- 求集合问题(并查集+筛选求素数/C++)
- 推荐几款Web程序员好用的CSS工具
- __attribute__机制介绍
- springmvc中@RequestMapping 和 controller 小结
- 47 - 按位实现加减乘除 四则运算
- 关于java代码中的异常理解