首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
BLBrain
掘友等级
IOS
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
0
文章 0
沸点 0
赞
0
返回
|
搜索文章
最新
热门
Objc消息转发机制
跟踪代码执行和源码。
Objc_msgSend 分析(二)
接上文objcemsgSend分析(一)分析到了_class_lookupMethodAndLoadCache3慢速查找方法流程。本文分析_class_lookupMethodAndLoadCache3的具体实现流程。 根据objc源码查找相关信息。 super(实例方法)方法…
Objc_msgSend 分析(一)
探寻objc_msgSend的真实实现过程。 根据objc源码来查找objc_msgSend的真正实现过程。 1、打一个断点。 2、打开debug汇编代码。 3、在msgsend打一个断点。 4、ctrl+下箭头,进入msgsend汇编指令,看到msgsend相关lib。 因为…
NSObject 属性分析
在上一步我们找到了内存中定义的方法存放的位置,以及属性的定义位置。但是对于每个实例来说,其属性是独有的。这里来寻找其在内存中存放的位置。 使用lldb 命令打印内存信息,找到属性对应的内存空间。 定义对象LGPerson,使用x/x4g命令打印内存,发现除第一字段为isa,其他…
NSObject底层探索-cache_t
执行walk 方法之前。 执行walk 方法一次。 执行walk 方法多次。 cache_t是一个缓存方法的列表,从中可以找到近期运行的方法。 当缓存区到达最大缓存的3/4时,清空缓存,缓存大小翻倍。 从cache_t可以知道类型近期调用的方法,也是方法查找加速的一个工具,增加…
NSObject_底层分析
通过源码和lldb调试,寻找内存中各种不同类型的NSObject对象,各个字段对应的信息。 构建测试类型BLPerson。 包含成员变量nikename,属性pro_name,实例方法walk,类型方法classwalk。 使用lldb 和objc源码来分析底层数据原理。分别测…
NSObject_底层代码探究_clang
探究objc底层具体实现。 使用clang 方法,编译objc代码,探究实现。 1、main.m文件修改,添加要测试的类。 3、打开cpp文件,查看c++代码。 BLTest,可以看到底层转换为struct类型,main函数中的相关的方法调用alloc,init也都可以看到。 …
metaclass作用——属性,类方法与实例方法
metaclass的具体作用,属性,方法等。 使用objc runtime来打印class和metaclass信息。 测试在测试实例中的,成员变量hobby,int_value以及属性name。 发现属性name,在类的内部存在_name形式. 测试打印实例方法,run,wal…
isa_super 指针分析
探究isa,super在对象中的具体指向。 打印跟进指针对应的地址。 1、从isa中,解析出对应的指针指向。(需要使用isamask或根据结构来解析出shiftcls指针) ...
union,enum 对比
union类型的使用union大小为siziof(char),每个bit位的命名依次位front,back,left,right,这样可以更充分的利用数据的每个bit对比宏命令的形式对比enum类型e
下一页
个人成就
文章被点赞
2
文章被阅读
3,543
掘力值
144
关注了
15
关注者
0
收藏集
0
关注标签
16
加入于
2019-12-14