Category例:对NSString添加分类

首先添加对类的扩展---Category

1.分类头文件中的声明

@interface NSString (NSStringExten)
+(int)numberCountOfString:(NSString *)str;
-(int)numberOfString;
@end

2.分类的实现,扩展了一个统计字符串中包含了多少个数字的方法.

包括了一个动态(对象)方法,和一个静态(类)方法.

#import "NSString+NSStringExten.h"

@implementation NSString (NSStringExten)
+(int)numberCountOfString:(NSString *)str{
    //此处使用的参数str 调用了下面的动态方法
    return [str numberOfString];

}
//因为这是一个对象方法,对象本身就是字符串,将自身传入即可
-(int)numberOfString{
    int count = 0;
    for (int i = 0; i < self.length ; i++) {
        //根据索引取出i位置对应的字符
        unichar c = [self characterAtIndex:i];
        if (c >= ‘0‘ && c <= ‘9‘) {
            count++;
        }
    }
    return count;
}
@end
时间: 2024-11-03 13:26:22

Category例:对NSString添加分类的相关文章

黑马程序员-OC特有语法:分类category,给NSString增加方法计算字符串中数字的个数

1:分类的使用场景:想对一个类,扩充一些功能,而又不改变原来类的模型,也不用继承,这时OC中的特有语法:分类可以做到: 当然分类也是一个类,也需要声明和实现,声明在.h文件中,实现在.m文件中,格式如下 // 声明 @interface  类名  (分类名称) @end // 实现 @implementation 类名 (分类名称) @end 2:分类的好处,当一个类比较庞大时,不同的部分可以放到不同的分类中,也方便团队中类的开发: 3:分类使用注意: a:分类不能增加成员变量,只能对原类增加方

objective c, category 和 protocol 中添加property

property的本质是实例变量 + getter 和 setter 方法 category和protocol可以添加方法 category 和 protocol中可以添加@property 关键字 所以,在protocol中添加property时,其实就是添加了 getter 和 setter 方法,在实现这个protocol的类中,我们要自己手动添加实例变量 例: @synthesize name = _name; //此行代码即添加了实例变量及实现了protocol中属性的getter.s

Tableau小技巧-如何在柱状堆积图上方添加分类汇总

怎样利用tableau在柱状堆积图上方添加分类汇总 在柱状图上午显示数据标签,只需要将标签设置为"显示标记标签":但是有些时候柱状图需要按照某些维度进行细分,此时在使用标签设置,显示的结果是给每个细分板块添加上了标签,而看不到汇总的数据. 以下我们可以通过添加参考线来进行设置: 1.右键点击纵轴,选择"添加参考线" 2.在弹出的参考线设置对话框中按下图进行设置 选择 "线", 范围选择 "每单元格", 线选项,设定值为&quo

黑马程序员学习笔记_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

从零开始编写自己的C#框架(21)——添加分类类型页面

页面权限与页面控件权限经过简单的调试后,终于启用起来了,以后大家添加新页面时,就必须按照本章介绍的方法,将你新增的页面注册到系统中,这样才能访问与进行相关操作. 下面讲讲如何创建一个分类类型的页面. 分类类型,顾名思义指的是按照一定规律.特点进行归类划分,放到一块的集合.我们开发时这些分类类型,经常用下拉列表来表现,如果有多级分类时,采用的是下拉树列表方式显示. 普通下拉列表 下拉树列表 下面将介绍如何从创建数据表.修改文件到权限绑定逐个步骤进行说明. 首先,我们先要创建好数据表 我们打开数据字

在项目中谨慎为系统类添加分类!!!!!

结论: 1.坚决杜绝为系统类做方法交换(见到[class_replaceMethod]格杀勿论!) 2.为系统类添加分类时候,属性和方法名必须加上[世上独一无二]的前缀,避免冲突和混淆. 之所以让我对上述行为恨之入骨是因为,今天为了一个bug,我花了将近半天时间苦苦追寻原因. 我只是使用了一个简简单单的UIImagePickerController的拍照的功能界面,奇葩的现象是,点击快门按钮时---可以看见界面中的按钮发生了视觉上的响应,但是却没有功能上的响应(按道理,我这边按下按钮的时候,拍照

添加 分类 自动适配图片

#import <UIKit/UIKit.h> @interface UIImage (ZB) +(UIImage *)imageWithName:(NSString *)name; @end #import "UIImage+ZB.h" @implementation UIImage (ZB) +(UIImage *)imageWithName:(NSString *)name{ if (IOS7) { NSString *url=[NSString stringWith

为RecyclerView的不同item项实现不同的布局(添加分类Header)

最近在做一个应用的时候,需要为GridLayoutManager添加头部header,然后自然而然就想到了用不同的itemType去加载不同的布局. 1.实现多item布局,用不同的itemType去加载不同的布局. 主要思路就是先定义好标识itemType的常量,然后重写getItemViewType()方法,根据不同的位置(position)返回不同的Type,接着在onCreateViewHolder()中根据参数viewType去判断该item项应该 inflate 哪个布局文件,并返回

android 动态设置TextView值,例:金额添加

一说到动态递增设置TextView值,非常多人应该立即就想到起个线程,让后在线程中睡眠指定时间,使用handler发送消息更新TextView值! 这样是实现了动态递增设置TextView值可是效率不咋滴吧,须要的话能够自己去试试,如1到100,10s内显示完,会感觉到有点卡的. 这里有个更好的方法,使用ValueAnimator进行设置,并且不须要自己去计算每次叠加后须要间隔的时间,以下是代码: public static void autoIncrement(final TextView t