美文网首页持续集成
NSProxy、NSInvocation、NSMethodSig

NSProxy、NSInvocation、NSMethodSig

作者: 小五92 | 来源:发表于2018-11-08 16:44 被阅读39次

    什么是NSProxy:

    NSProxy是一个抽象的基类,是根类,与NSObject类似

    NSProxy和NSObject都实现了<NSObject>协议

    提供了消息转发的通用接口

    如何使用NSProxy来转发消息?

    1.我先设置一个类 WeakProxy, 继承自 NSProxy

    2.为 WeakProxy 设置一个 NSObject 属性

    3.自定义一个转换方法,相当于给 NSObject 属性赋值

    4.然后通过这个属性获得调用方法的方法签名

    methodSignatureForSelector:

    5.为调用设置目标

    forwardInvocation:

    NSInvocation、NSMethodSignature

    NSMethodSignature: 方法的签名,可获取传来selector的参数和返回值。
    NSInvocation : 用来存储和转发消息,可以利用NSInvocation调用任意SEL甚至block。

    在 iOS中可以直接调用某个对象的消息方式有两种:

    • performSelector:withObject;
    • NSInvocation。

    参考链接:
    https://www.jianshu.com/p/177e44a411db
    https://www.jianshu.com/p/da96980648b6

    相关文章

      网友评论

      本文标题:NSProxy、NSInvocation、NSMethodSig

      本文链接:https://www.haomeiwen.com/subject/wnbwxqtx.html