美文网首页
iOS 底层 method_t 中的 types

iOS 底层 method_t 中的 types

作者: 孙掌门 | 来源:发表于2020-02-09 10:50 被阅读0次

iOS 底层 method_t 中的 types

上篇我们说到,method_t 其实就是一个结构体,存储着方法的 name ,types,imp,name没什么可说的就是方法的名字,imp 就是去调用方法,这里讲讲什么事 types,比如我们现在有一个方法

- (int)addA:(int )a andB:(float)b,types 的组成方式为,返回值和参数类型,例如v@:,那么是什么意思呢?如上面的方法,他的types为 i24@0:8i16f20

i24@0:8i16f20的含义

i 为返回值,为int类型,所以他为i,这些types,对应的简写代表字母在苹果的官方文档上面都有,可以准确理解为,int就是i,接下来都一样,@ 代表 id 类型,: 代表 sel,f 代表 float,
最前面的24 是所有参数的字节数,所以就是除了返回值的第一个i,后面所有参数占用的字节数,也就是,@++i+f=8+8+4+4=24,所以i24就表示,返回值为int,参数一共24个字节,接着往下看,@0,@是第一个参数,后面跟一个数字代表这个参数从哪个字节开始,@其实就是self,就是这个方法,系统默认会将self穿进去,所以@0代表,第一个类型为@的参数从第0个字节开始,接下来,:8,:代表sel,也就是当前的方法,从第八个字节开始,因为前面的@类型占用了八个字节,所以:8,代表从第八个字节开始,后面的i16f20,我想大家都知道什么意思了。

相关文章

  • iOS 底层 method_t 中的 types

    iOS 底层 method_t 中的 types 上篇我们说到,method_t 其实就是一个结构体,存储着方法的...

  • runtime-method

    method_t数据结构 SEL SEL获取 SEL转字符串 types 方法编码

  • Linking to app

    android:新加intent, lunchmode ios: 在xcode中配制url types

  • iOS-面试题2-Runtime、Runloop

    目录: isa存储信息分析 Class的内部结构、method_t、cache objc_msgSend底层调用流...

  • iOS method_t

    iOS method_t 我们查看 OBJC 源码 主要看前三个属性。 从源码的 method 结构体可以知道,一...

  • iOS method_t

    method_t 是对方法/函数的封装 SEL代表方法/函数名,一般叫选择器(selector),底层结构类似ch...

  • IOS Scheme

    关于 ios URL Schemes 在info->URL Types中 设置idetifier和URL Sch...

  • Runtime底层解析 - 方法:method_t

    method_t method_t是对方法\函数的封装 断点查看方法 仿源码自定义ClassInfo.h,从源码中...

  • 探索iOS底层原理第四篇——Category的本质

    本系列是学习iOS底层原理过程中的记录笔记第三篇,往期目录:探索iOS底层原理开篇——对象本质探索iOS底层原理第...

  • 探索iOS底层原理第三篇——KVC

    本系列是学习iOS底层原理过程中的记录笔记第三篇,往期目录:探索iOS底层原理开篇——对象本质探索iOS底层原理第...

网友评论

      本文标题:iOS 底层 method_t 中的 types

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