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


分类: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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 1,814评论 0 9
  • 这篇文章完全是基于南峰子老师博客的转载 这篇文章完全是基于南峰子老师博客的转载 这篇文章完全是基于南峰子老师博客的...
    西木阅读 30,649评论 33 466
  • OC基础总结 重新回过头看这些基础知识,对许多知识点都有新的认识,拥有坚实的基础才能更快的成长。 #improt ...
    xx_cc阅读 6,082评论 10 56
  • 1. 使用 #import 相对c的 include 是防止头文件的重复导入 2. NSLog 相对于 print...
    迎风起飞的猪阅读 1,789评论 6 9
  • Objective-C 1. import的用法 拷贝文件内容可以自动防止文件的内容被重复拷贝(#define宏定...
    马文涛阅读 5,364评论 3 17