分类:Category
基本使用:
使用场合(作用):在不改变原来类的模型的基础上给类扩充新的方法
关于分类我们如何创建分类:打开Xcode 然后建立一个类 之后如图:
点击我所选中的那个图标
下一步是:
在中间那个选择类型就是我们的分类
如果我们想给那个类创建分类就在第三行写上我们类名
如:
我是给我们高俊这个类创建了一个分类 而分类的名称就是:高俊2
注意的是:我们不要忘记在main函数前面写上分类的声明
分类可以封装不同功能的方法(以后我们的项目大的时候就需要分类封装了这样会使我们 的代码更加清晰)一般是以模块名命名的
注意:分类不能扩充成员变量
类的应用:格式:
下面我给的这几张图片就是关于我们分类的应用,这里面就有关于我们分类的格式:
分类的声明:
分类的实现:
分类在我们的main函数的调用:
这个代码的作用就是找出一串字符串里面的所有的数字
类的深入研究
类的本质:
1、其实类也是一个对象
2、我们所说的类其实就是Class类型的对象
3、Class创建Person类对象(注意是类对象而不是对象、Class类型的对象)
利用Person类对象创建Person类型的对象
类对象的使用
一个类在储存空间中只有一个类对象,但是可以有无数个类型的对象
类的加载与初始化
先加载父类再加载子类
其中有一个类方法:
当程序运行的时候,就会加载一次项目中的所有的类与分类。类一旦加载完毕就会调用+load方法
同时当我们第一次调用这个方法的时候就会另外调用+initialize方法
而两者中间的作用就是 :
description
减号开头的description方法决定了实例对象的输出结果
而我们一加号开头的description方法决定的是我们类对象的输出结果
当我们想打印我们对象的信息的时候就可以利用这个方法。当然打印结果就是
<类名:内存地址>
而如何是我们的-(void)description方法返回的是我们对象的属性:就是利用重写
NSLog的输出补充:
SEL
基本使用
以前我们说的每一个方法都在类里面有一定的储存空间,现在我们再说的细致一点
其实每一个方法地址都对应了一个SEL数据
当我们调用我们的test方法时:
1、他是先把我们的test方法包装成SEL数据
2、再拿着SEL到我们的类中找到对应的方法地址
3、根据方法地址调用对应的方法
开发中我们知道这个SEL的价值:
当我们只知道一个方法名的字符串的时候,我们可以通过以下方法进行调用方法:
其他一些关于我们的SEL的知识: