method_t

🪐method_t是对方法\函数的封装

///

struct method_t {

  SEL name;  //函数名

  const  char  * types;//编码(返回值类型,参数类型)

  IMP imp;//指向函数指针(函数地址)

}

///

🪐IMP代表函数的具体实现

typedef  id _Nullable (*IMP)(id  _Nonnull,  SEL  _Nonnull,...);

🪐SEL代表方法\函数名,一般叫做选择器,底层结构跟char*类似

可以通过@selector()和sel_registerName()获得

可以通过sel_getName()和NSStringFromSeletor()转成字符串

不同类中相同名字的方法,所对应的方法选择器是相同的

🪐typedef struct  objc_seletor  *SEL;

types包含了函数返回值,参数编码的字符串

返回值 ,参数1,参数2.........

🪐iOS中提供了一个叫做@encode的指令,可以将具体的类型表示成字符串编码

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容