关于OC的类方法和实例方法的获取

一、在了解类方法和实例方法之前先要知道:什么是实例、什么是类对象、什么是元类对象

1、程序运行之后,存在的类就创建了对应的类对象和元来对象(把他们看成一个对象,而不是简单的类;即一个的实例)(对应的类对象和元类对象都是唯一的)

2、当创建一个类的实例的时候,则会有一个指针指向了对应的类对象(isa),如下图所示

关于OC的类方法和实例方法的获取

 

 

3、类对象中存放了对应的实例方法, 元类对象中存放了对应的类方法(静态成员函数)所以要获取对应的实例方法时候可以通过[Student class]的方式; 该方式获取到的是对应的类对象,既然这样子那能否通过[[Student class] class]获取都对应的元类对象呢?答案是不行的,class方法,只能获取到本类对象,而无法获取本类对象对应的元类对象。要获取对应的元类对象则需要使用:object_getClass([Student class])的方式来获取

具体的元类跟类还有实例的关系可以看Objective-C高级编程 iOS与OS X多线程和内存管理.pdf 

未完待续

上一篇:初中过定点动点问题


下一篇:iOS中js调用oc获取返回值(WKWebView)