美文网首页
iOS 动态调用方法

iOS 动态调用方法

作者: Sh1mmer | 来源:发表于2018-10-19 10:13 被阅读0次

我们可以通过传递过来的方法名称来执行方法

          SEL selector = NSSelectorFromString(@"tempAction:");
          NSDictionary *paramter = @{@"a":@"1"};
          IMP imp = [self methodForSelector:selector];
          void(*func)(id, SEL, NSDictionary*) = (void *)imp;
          func(self, selector,paramter);
//================================
- (void)tempAction:(NSDictionary *)dic{
    NSLog(@"%@",dic);
}

当然我们也可以通过这个方法去执行其他类里的方法
//在classB中执行下面代码;
        Class class = NSClassFromString(@"classA");
        SEL selector = NSSelectorFromString(@"classAAction:");
        NSObject *instance =  [class new];
        NSDictionary *paramter = @{@"a":@"1"};
        IMP imp = [instance methodForSelector:selector];
        void(*func)(id, SEL, NSDictionary*) = (void *)imp;
        func(self, selector,paramter);
//==================
//classA中在.m里;(不需要在.h中声明classAAction方法)
- (void)classAAction:(NSDictionary *)temp{
    NSLog(@"%@",temp)
}

这里执行方法的返回值和参数大家可以灵活更换

相关文章

  • iOS动态调用类方法

    iOS动态调用类方法(不带参数) iOS动态调用类方法(带参数) iOS动态调用类方法(有返回值) 优点 弱化连接...

  • [iOS]libffi动态调用C函数

    前言:在iOS开发中可以使用Runtime动态调用OC方法,但是无法动态调用C函数,那么该如何动态调用C函数呢?值...

  • iOS 动态调用方法

    我们可以通过传递过来的方法名称来执行方法 当然我们也可以通过这个方法去执行其他类里的方法 这里执行方法的返回值和参...

  • iOS多线程通信

    iOS多线程通信: gcd 相关 直接 使用performSelector 动态方法调用 通过MachPort...

  • 我眼中的元编程-方法篇

    Ruby是一门动态语言,动态创建与调用方法是其中一个体现。 动态方法 动态调用方法(动态派发) 动态调用方法,是指...

  • iOS 实现方法动态调用

    NSInvocation:配置方法调用,主要可以重新包装方法调用。解决开发中偶尔有需求使用performSelec...

  • 动态调用动态库方法 c/c++ linux windows

    动态调用动态库方法c/c++linuxwindows 关于动态调用动态库方法说明 一、 动态库概述 1、 动态库的...

  • Struts2动态方法调用

    动态方法调用 在Struts2中动态方法调用有三种方式,动态方法调用就是为了解决一个Action对应多个请求的处理...

  • 《Ruby 元编程》读书笔记三:方法

    动态方法 目的:消除重复的代码。 ①动态调用方法 调用方法时,通常使用(·),也可以使用Object#se...

  • iOS OC Runtime动态调用方法

    调用无参方法 有参有返回值方法

网友评论

      本文标题:iOS 动态调用方法

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