美文网首页
Objectiev-C 按Class类型调用函数(已知类型)

Objectiev-C 按Class类型调用函数(已知类型)

作者: Lee_Jo | 来源:发表于2020-04-16 16:48 被阅读0次
+ (GPBMessage*)disassembleBodyWithData:(Class)dataClass data:(NSData*)data {
    GPBMessage *model = nil;
    if (dataClass && [dataClass isSubclassOfClass:[GPBMessage class]]) {
        Method method = class_getClassMethod(dataClass, @selector(parseFromData:error:));
        IMP imp = method_getImplementation(method);
        if (imp) {
            SEL oriSEL = method_getName(method);
            if (oriSEL) {
                NSError *err = nil;
                GPBMessage*(*parseFunction)(__strong id, SEL, NSData*, NSError** ) = (GPBMessage* (*)(__strong id, SEL,  NSData*, NSError**))imp;//函数类型
                model = parseFunction(dataClass, oriSEL,data, &err);//函数指针
                if (err) {
                     NSLog(@"error: %@", err);
                }
            }
        }
    }
    return model;
}

相关文章

  • Objectiev-C 按Class类型调用函数(已知类型)

  • 3、XLua中的Lua API

    CS对象 CS.namespace.class(...)调用一个C#类型的构造函数,并返回类型实例 CS.name...

  • [C++11阅读][2-3-1]显式类型转换

    避免已知类型向自定义类型隐式转换 explicit关键字加在构造函数前面,可以声明此函数应当被显式调用,而不是在隐...

  • Swift---11.方法

    方法(属于某个特定类型的函数)实例方法(写法与调用)class ClassMethods { var num...

  • 查看Python中的数值类型

    想要查看一个数值类型,可以直接调用type()函数。例如: >>> type(3.5)>>>

  • 四、函数进阶

    一. 高阶函数 参数类型包含函数类型或返回值类型为函数类型的函数为高阶函数。 常见的高阶函数 高阶函数的调用 二....

  • TS基础篇6:各种接口类型

    (一)接口:函数类型 1、为了使用接口表示函数类型,我们需要给接口定义一个调用签名2、对于函数类型的类型检查来说,...

  • 11-27函数

    函数 函数的重点是识别调用约定、参数类型和返回值类型 调用约定: cdecl调用方平栈 stdcall被调用方平栈...

  • template

    class template 参数化类型 inline function: 函数若在 class body 内定...

  • Swift-函数坑

    1. 函数的定义和调用 函数声明func 函数名(参数名:参数类型, 参数名:参数类型, ...) -> 函数返回...

网友评论

      本文标题:Objectiev-C 按Class类型调用函数(已知类型)

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