分类又叫类目或者类别
今天咱们详细的讲一下类目,所谓类目就是为已存在的类添加方法,但是不能添加成员变量。
首先为NSString添加分类
首先到xcode里面,直接上图
#import <Foundation/Foundation.h>
@interface NSString (module)
- (int)calculationTheNumberOfArabicNumeralsInString;
+ (int)calculationTheNumberOfArabicNumeralsWithString:(NSString *)string;
+ (void)test;
@end
@implementation Person
+ (void)test{
NSLog(@"Person---test");
}
@end
#import "NSString+module.h"
@implementation NSString (module)
- (int)calculationTheNumberOfArabicNumeralsInString{
int count = 0;
for (int i = 0; i < self.length; i++) {
char a = [self characterAtIndex:i];
if (a >= '0' && a <= '9') {
count++;
}
}
return count;
}
+ (int)calculationTheNumberOfArabicNumeralsWithString:(NSString *)string{
return [string calculationTheNumberOfArabicNumeralsInString];
}
NSString+module.h里面的module是为工程里面哪个模块添加分类
这样在ViewController.m里面
NSString *str = @"123flahfho1234567";
int num = [str calculationTheNumberOfArabicNumeralsInString];
int num1 = [NSString calculationTheNumberOfArabicNumeralsWithString:str];
NSLog(@"调用对象方法这个字符串中的阿拉伯数字的个数是%d个",num);
NSLog(@"调用类方法这个字符串中的阿拉伯数字的个数是%d个",num1);
//打印结果如下:
// 2017-07-13 11:03:47.114 分类又叫类目[65722:826033] 调用对象方法这个字符串中的阿拉伯数字的个数是10个
// 2017-07-13 11:03:53.313 分类又叫类目[65722:826033] 调用类方法这个字符串中的阿拉伯数字的个数是10个
到这里就为NSStirng添加了一个分类
但是有的同学可能有疑问,就是类里面的方法和分类里面的方法能不能名字一样?答案是可以方法名相同,但是问题来了,到底是调用哪个同名方法呢以及它们的优先级谁高谁低?好的,下面我们一起来探究一下
首先创建一个继承于NSObject的Person类,并且为里面添加方法:
#import <Foundation/Foundation.h>
@interface Person : NSObject
+ (void)test;
@end
#import "Person.h"
@implementation Person
+ (void)test{
NSLog(@"Person---test");
}
@end
再为这个类创建两个分类
#import "Person.h"
@interface Person (First)
+ (void)test;
@end
#import "Person+First.h"
@implementation Person (First)
+ (void)test{
NSLog(@"Person+First.h---test");
}
@end
#import "Person.h"
@interface Person (Second)
+ (void)test;
@end
#import "Person+Second.h"
@implementation Person (Second)
+ (void)test{
NSLog(@"Person+Second.h---test");
}
@end
这样就创建了两个分类,并且分类里面的方法名是一样的,然后在ViewController.m里面调用
[Person test];
打印结果如下:
2017-07-13 11:17:20.446 分类又叫类目[65844:832770] Person+Second.h---test
说明分类的优先级是高于类本身的方法,但是究竟是哪个分类的优先级高呢,还得看这里,如图
就是说这两个分类谁在下面就调用谁的方法,也许有的同学会说Person.m放到下面会不会先调用自身的方法呢,答案是:NO。
所以综上所述
分类的优先级 > 自身类,至于那个分类的优先级高,那就得看先加载哪个分类的.m文件了,唉!
分类又叫类目或者类别相关推荐
- 2.JAVAEE-电子商城-类目管理模块
文章目录 一.实现步骤: 1.后端(6步骤):ItemCategory实体类-->ItemCategory接口-->ItemCategory接口配置文件-->ItemCategory ...
- 个人小程序支持哪些小程序服务类目
大家都知道微信小程序从注册主体上分为个人小程序和企业小程序,其中,个人小程序因为注册后无法认证被平台在很多方面限制了权限,使得个人小程序和企业小程序的区别很大,其中之一就是在小程序服务类目上的范围不一 ...
- OC--category(类目、分类、类别)
category:在我看到的各种资料中,通常有3中翻译:类目.分类.类别.其实都是一个意思,表示对一个类的扩充. category使用的优点: 可以随时给类添加方法,这种添加不需要去创建子类的,而且添 ...
- Category(分类/类目)、Protocol(协议)、Extension(扩展/延展)
Category(分类/类目): 利用Objective-C的动态运行时分配机制,Category提供了一种比继承更为简洁的方法来对class进行扩展,无需创建对象类的子类就能为现有的类添加新方法,可 ...
- 功能点分析:商品类目表
前言 作为电商网站,必然要有商品类目表,以便商品分类检索.而设计商品类目表,又是一件特别繁杂的事情.一件商品可能有多个类目来检索出来,比如苹果手机,可以从品牌检索也可以从手机检索.一个类目对应多个商品 ...
- 弘辽科技:淘宝类目属性的型号是什么?
在整个淘宝店铺运营过程中,发布产品可以说是最为简单的事情,我们将产品图片和详情页都设计好之后,直接上传就行.不过,在上传的时候,有一些细节需要注意. 一.目属性的型号是什么? 类目属性型号就是内部给定 ...
- 大咖分享|李志强:一文详解标签类目体系落地方法与建设价值
讲师介绍 李志强(莫奈),数澜科技资深数据专家,近10年大数据行业工作经验,先后参与过某大型股份制银行信用卡营销平台建设.时尚集团数据化平台建设项目.长虹数据中台项目等大型集团公司数字化项目,擅长企业 ...
- 淘淘商城第三天—完成商品添加功能 商品类目选择 图片上传 图片服务器搭建 kindEditor富文本编辑器的使用 商品添加功能
1.实现商品类目选择功能 1.1需求 在商品添加页面,点击"选择类目"显示商品类目列表: 请求初始化树形控件的url:/item/cat/list 1.2 EasyUI tree数 ...
- 乐而得教育:店铺类目怎么选择
在拼多多开店后,每次上传商品都要分类,因为商品一定要有对应的品类.如何在拼多多发布其他类别?下面小编就为大家解答这个问题. 不能选错店铺的类目 如果商品放错了品类,比如衣服,不要以为买家在选衣服的时候 ...
最新文章
- 2019年上半年收集到的人工智能LSTM干货文章
- 机器学习系列(2)_从初等数学视角解读逻辑回归
- C#中使用StreamReader实现文本文件的读取与写入
- k8s查看节点CPU消耗情况
- TLS1.3握手流程以及参数详解
- 前端学习(1603):脚手架组件使用
- Kinect v1在windows上的使用教程
- 【kafka】kafka 如何开启 kafka.consumer的监控指标项
- 【文件游标的设置、获取与恢复;其它文件库函数的使用】(学习笔记20--文件下)
- fla 优化思路 flash cs6
- hprose php用户手册,04 协程 - 《Hprose for PHP 用户手册》 - 书栈网 · BookStack
- Android日期类组件学习
- 手机拍照反差对焦、相位对焦和激光对焦系统解析
- 多维数组变成一维数组
- postgresql修改密码
- 杰理-手表-AC701-watch-马达振动一次
- [转] 程序员也要养生
- java锁源码分析-1获取锁的过程
- SpringBoot+Vue高校学生评教系统java教学质量评估系统
- 51DIY音乐频谱显示