iOS中的方法编码

当我们在日常开发中,如果涉及到一些iOS底层的东西就可能会遇到方法编码,这是了解这门语言必不可少的一个环节。

阅读全文

方法替换和Aspects

带着问题看文章:

1.常规姿势的方法替换原理是什么

2.Aspects的方法替换原理是什么

3.为什么这样下面的代码这样hook之后,所有的实例的viewWillAppear:也被hook了

[[UIViewController class] aspect_hookSelector:@selector(viewWillAppear:) withOptions:AspectPositionBefore usingBlock:^(){
        
} error:nil];

4.为什么Aspect不能hook静态方法

5.如果用先用Aspects hook了方法A,接着又用MethodSwizzle方法(下文有)对A进行了hook,两个hook都能执行吗?

阅读全文

Runtime(三) 消息转发

向对象发送一个消息,如果没有处理就会发生错误。但是在产生错误之前,runtime会给接受对象第二次机会来处理消息。

阅读全文

Runtime (一) 消息

Message

这篇文章描述了消息如何通过使用objc_msgSend发送,如何通过方法名称找到对应方法的reference

The objc_msgSend Function

在Object-C中,发送的消息直到运行时才绑定到正真的方式实现。

阅读全文

消息转发

描述:如果类不能执行这个方法,会执行动态消息转发,如果该类还是不能动态的添加方法,则走完整的消息转发。分两步,第一步看看有没有其他类可以执行该方法,如果没有走第二步,将所有的细节封装到NSInvocation中,给接受者最后一次机会

阅读全文

作者的图片

董二千

愿你走出半生 归来仍是少年

iOS Developer

China