美文网首页
oc方法签名(Method Signature)机制

oc方法签名(Method Signature)机制

作者: 寻雨的人 | 来源:发表于2016-12-08 10:30 被阅读537次

    方法签名

    oc对方法的参数个数、参数类型以及返回值类型的描述,每个方法都有一个方法签名

    假设有方法签名为"@@:@"

    //    第一个@表示返回值类型为id,

    //    第二个@表示的是函数的调用者类型,

    //    第三个:表示 SEL

    //    第四个@表示需要一个id类型的参数

    oc获取方法签名的接口:

    // Returns a string describing a method's parameter and return types.

    OBJC_EXPORTconstchar*method_getTypeEncoding(Method m);

    使用@encode将消息编码成字符串形式。

    编码的格式按照 id objc_msgSend(id self,SEL selector, ...);

    举例:

    -(void)hello ========> v16@0:8

    -(id)hello:(id)x========>@24@0:8@16

    -(void)hello:(id)x :(id)e========>v32@0:8@16@24

    v16,v32等表示返回类型为空

    @16,@24,@32等表示返回值类型或参数类型为id类型

    @0表示receiver类型为id

    :8表示SEL标示

    相关文章

      网友评论

          本文标题:oc方法签名(Method Signature)机制

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