美文网首页程序员iOS学习笔记@IT·互联网
OC之02面向对象05核心语法之分类、类的深入研究、SEL

OC之02面向对象05核心语法之分类、类的深入研究、SEL

作者: 高俊 | 来源:发表于2015-11-12 13:25 被阅读122次


分类: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的知识:

注意的是我们以后说的发消息就是指发SEL

相关文章

网友评论

    本文标题:OC之02面向对象05核心语法之分类、类的深入研究、SEL

    本文链接:https://www.haomeiwen.com/subject/wmyhhttx.html