美文网首页
NSInvocation

NSInvocation

作者: 冰棍儿好烫嘴 | 来源:发表于2019-02-18 17:54 被阅读0次

    iOS中调用一个函数,一般有三种方法

    第一种:对象(类对象)直接调用

    01-对象调用方法

    第二种:performSelector方法

    02-performSelector方法

    performSelector方法调用的本质是使用第三种方法NSInvocation来实现方法的

    performSelector方法中可传入一个活着两个参数,如果参数过多,这里没有办法传入。一般的做法是将多个参数封装成字典NSDictionary传入。但是这样的话就要多写这个封装的代码,比较麻烦。

    第三种:NSInvocation调用

    03-NSInvocation调用

    NSInvocation方法调用过程图中已经写的很明白了,需要注意的就是设置参数的时候setArgument方法中的两个参数

    第一个参数需要传入的是对应参数的指针,第二个参数需要传入的是参数在参数列表中的index。应为在iOS中每个函数都有两个默认的参数:0--id:self 1--SEL:_cmd,所以自己添加的参数一般下标从2开始

    应用

    这里提一个应用,供大家参考

    在做项目组件化的时候大家都要使用路由,路由中传入的类名和方法名一般都是字符串,大家通过Runtime方法获取对应的类名和方法名。而参数一般是通过拼接的方式传入,然后在路由这里将参数组合成字典。然后让对应的类调用对应的方法。

    在调用方法的时候一般都要做一层封装,用NSInvocation来实现方法的调用。

    相关文章

      网友评论

          本文标题:NSInvocation

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