标签:
一、类的基本概念:
1、类其实也是一个对象, 这个对象会在这个类第一次被使用的时候创建
2、只要有了类对象, 将来就可以通过类对象来创建实例对象
3、实例对象中有一个isa指针, 指向创建自己的类对象
4、类对象中保存了当前对象所有的对象方法
5、当给一个实例对象发送消息的时候, 会根据实例对象中的isa指针去对应的类对象中查找
6、所有类对象的继承关系就是元类对象的继承关系
二、isa指针
1.每一个对象都包含一个isa指针.这个指针指向当前对象所属的类。
2.[d bark];表示给d所指向的对象发送一条bark消息,调用对象的bark方法,此时对象会顺着内部的isa指针找到存储于类中的方法并执行。
3.isa是对象中的隐藏指针,指向创建这个对象的类。
4.通过isa指针我们可以在运行的时候知道当前对象是属于那个类。
三、元类
1、元类的定义:元类是类对象的类,每个类都有自己独一无二的元类,即
(1)当你给对象发送消息时,消息是在寻找这个对象的类的方法列表。
(2)当你给类发消息时,消息是在寻找这个类的元类的方法列表。
元类是必不可少的,因为它存储了类的类方法。每个类都必须有独一无二的元类,因为每个类都有独一无二的类方法。
2、元类的类:
(1)元类,就像类一样,它也是一个对象,也可以调用它的方法。这就意味着他必须也有一个类。
(2)所有的元类都使用根元类(继承体系中处于顶端的类的元类)作为他们的类。即所有NSObject的子类的元类都会以NSObject的元类作为他们的类。
(3)所有的元类使用根元类作为他们的类,根元类的元类则就是它自己。也就是说基类的元类的isa指针指向他自己。
标签:
原文地址:http://www.cnblogs.com/hissia/p/5442253.html