美文网首页
OC 反射传参数

OC 反射传参数

作者: woniu | 来源:发表于2022-12-06 16:32 被阅读0次

在写SDK或者组件库的时候,我们通常会遇到调用主工程的类的问题,但是由于我们组件库内部无法引入相关类,

1、performSelector
一般的数据用performSelector就可以传参,但是基本数据类型如int,NSInteger等都不能传参。

    Class TYTRedirectUrl = NSClassFromString(@"TYTRedirectUrl");
    [TYTRedirectUrl performSelector:@selector(popRootVCWithTabIdx:) withObject:2];

2、NSInvocation
为了解决上面的问题,我们说使用NSInvocation来处理。这里注意点[invocation setArgument:&tabIdx atIndex:2];,索引必须写2,否则就无法传参tabIdx。是最后一个索引,写3就超出索引,就会崩溃掉。

  NSInteger tabIdx = 2;
  Class class = NSClassFromString(@"NextViewController");
  SEL sel = NSSelectorFromString(@"popRootVCWithTabItem:");
  NSMethodSignature *signature = [class methodSignatureForSelector:sel];
  NSInvocation *invocation = [NSInvocation 
  invocationWithMethodSignature:signature];
  [invocation setArgument:&tabIdx atIndex:2];
  invocation.selector = sel;
  invocation.target = class;
  [invocation invoke];

相关文章

  • OC 反射传参数

    在写SDK或者组件库的时候,我们通常会遇到调用主工程的类的问题,但是由于我们组件库内部无法引入相关类, 1、per...

  • Object-c 基础详解

    Object-C 方法传参机制 : OC 中得参数传递都是值传递, 传入参数的是参数的副本; -- 基本类型 (值...

  • WebViewJavascriptBridge 调用过程(二)

    JS调用OC过程 以WKWebView为例1、OC端注册 2、JS端调用OC端注册的名称,并传参数设置回调函数。 ...

  • 问题大全

    1.说一下OC的反射机制 所有的oc 对象都是继承于nsobject nsobject 提供了如下反射方法反射方...

  • Effective-OC读书笔记(1)

    针对于这几天在读effective-oc相关书籍,笔者基于OC基础做一些总结 1、反射机制 OC中的反射机制 体现...

  • java虚拟机:01_java反射总结

    入门 方法参数化:main方法可以的,但封装成方法,传参 进阶 反射:具体某个类的方法名、类名、字段名参数化 高级...

  • iOS原生&JS交互

    OC 获取js中的key OC调用js方法 JS调用OC中不带参数的block JS调用OC中带参数的block ...

  • OC 反射弧机制

    反射弧概念 程序可以访问、检测和修改它本身状态或行为的一种能力。 OC反射弧 OC的反射机制,即在动态运行状态下可...

  • iOS面试题

    1、说一下OC的反射机制; OC 的反射机制以及使用场景 2、block的实质是什么?有几种block?分别是怎样...

  • Swift与OC的区别

    OC Swift oc swift 如果有参数直接增加 ':'

网友评论

      本文标题:OC 反射传参数

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