nsproxy

2020-04-18  本文已影响0人  不如养花

NSProxy

抽象基类
重写- (void)forwardInvocation:(NSInvocation *)invocation;和- (nullable NSMethodSignature *)methodSignatureForSelector:(SEL)sel方法,来转发它没实现的方法。
把消息转发给真正的target的代理类

应用:

1.解除nstimer的循环引用
2.多继承
3.消息分发
(多继承就是在proxy中保存那两个对象,判断下调用的是哪个类,然后让其分别调用各自的方法)
(消息分发是把类保存在自定义proxy中字典中,用运行时获得该类的方法,并存入字典,在调用时去判断是哪个类的方法)
NSProxy

NSInvocation

用来包装方法和对应的对象,它可以存储方法的名称,对应的对象,对应的参数
应用: 可以多参数调用
NSInvocation

NSMethodSignature

用于获取某个类的类方法或者实例方法参数的个数和方法的返回值
所以使用时要正确传入该类。
NSMethodSignature

上一篇下一篇

猜你喜欢

热点阅读