美文网首页持续集成
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

    什么是NSProxy: NSProxy是一个抽象的基类,是根类,与NSObject类似 NSProxy和NSObj...

  • nsproxy

    NSProxy 抽象基类重写- (void)forwardInvocation:(NSInvocation *)i...

  • 重拾iOS-NSProxy

    关键词:NSProxy,NSObject,Runtime 面试题:1)知道NSProxy吗?2)NSProxy和N...

  • BlocksKit A2DynamicDelegate研究

    NSInvocation @interface NSInvocation:NSObject 通过方法签名获得NSI...

  • NSProxy

    NSProxy.h文件内容 NSProxy 是一个抽象类NSProxy遵守了 NSObject 协议,内部有它的 ...

  • NSInvocation如何调用block

    NSInvocation如何调用block 同步发布到博客地址NSInvocation如何调用block NSIn...

  • NSInvocation个人理解

    NSInvocation的使用: //NSInvocation;用来包装方法和对应的对象,它可以存储方法的名称,对...

  • [iOS] 七七八八的小姿势(2)

    目录: NSProxy 字典集合对成员的引用方式 class判断 block变量捕获 1. NSProxy NSP...

  • NSProxy 和 NSObject 关系

    一、NSProxy 简介NSProxy 是一个抽象类,它实现了protocol NSObject 所要求的基本方法...

  • 强大的NSInvocation

    前言 在消息转发中提到过NSInvocation这个类,这里说一下我所理解的NSInvocation。NSInvo...

网友评论

本文标题:NSProxy、NSInvocation、NSMethodSig

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