标签:dea c中 src http mamicode 通过 它的 poi key
isa
指针指向哪里?isa
指针有哪两种类型?isa
指向类对象isa
指向元类对象isa
指向元类的基类isa
有两种类型
NON_POINTER_ISA
,除了内存地址,还存有一些其他信息指向他的类对象,从而可以找到对象上的方法.
如果向一个nil对象发送消息,首先在寻找对象的isa指针时就是0地址返回了,所以不会出现任何错误。也不会崩溃。
简单说就是进行方法交换
在Objective-C中调用一个方法,其实是向一个对象发送消息,查找消息的唯一依据是selector的名字。利用Objective-C的动态特性,可以实现在运行时偷换selector对应的方法实现,达到给方法挂钩的目的。
每个类都有一个方法列表,存放着方法的名字和方法实现的映射关系,selector的本质其实就是方法名,IMP有点类似函数指针,指向具体的Method实现,通过selector就可以找到对应的IMP。
换方法的几种实现方式
标签:dea c中 src http mamicode 通过 它的 poi key
原文地址:https://www.cnblogs.com/jiefangzhe/p/12606428.html