首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
欧德尔胡
掘友等级
iOS
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
12
文章 12
沸点 0
赞
12
返回
|
搜索文章
赞
文章( 12 )
沸点( 0 )
OC底层-对象的alloc流程探究
继续向下分析,就用到了官方下载的源码objc4-781,源码下载后再进行debug调试的时候,也是花了很久的功夫,这里就不详细说明。有关编译和调试的问题可以留言或私信 在学习知识的时候,我们往往都是碎片化的理解和记忆,不妨每次给自己几分钟做一些思考和联想,让知识串联起来。如果文…
OC底层 -从类的对象内存排列看内存对齐
缘于上篇文章OC底层-对象的alloc流程探究,在联想的时候想到了内存对齐,又查看了很多关于OC内存对齐的文章,感觉信息量还是挺大的,笔者决定自己下手一探究竟。 从lldb调试的信息可以看到,在给对象赋值后,我分别用x、x/4gx、x/6gx对person对象进行地址打印,从拿…
iOS经验积累-拿到当前连接WiFI的网关地址
最近一次tcp连接设备,设备输入流处理及控制设备操作的项目中,用到了通过连接wifi局域网通信,当时用的是wifi的网关地址作为设备的ip。查阅资料的时候,发现网上的回复都是一样的版本,笔者亲试此版本在APP允许无线局域网和蜂窝数据都打开的情况下,有很大的几率会拿到蜂窝移动数据…
iOS工具包-记录自己常用好用的工具集合(持续更新)
macOS工具包SketchV68.0中文版最好用的流程图OmniGraffleMWeb_3.4.1思维导图MindNode501Microsoft_Office_2016命令行神器Go2ShellS
OC底层-ISA的前生今世
的流程中,我们知道了OC底层是通过initInstanceIsa把我们的类cls和isa关联起来,我们顺着initInstanceIsa去对今天的主角isa一探究竟。 可以看到在objc_object结构体中,isa是isa_t类型。同时我们找到了isa_t的定义。union是…
OC底层-类的结构分析
这里直接上图会比较清晰一些,源码的追踪过程这里就不赘述了。主要追踪关键方法objc_class : objc_object。 objc_class的第一个成员isa,源码里虽然注释,但也在提醒我们objc_class继承自objc_object,自带了isa特性。isa的流程也…
OC底层-面试题小试牛刀
isKindOfClass底层源码实现objc_opt_isKindOfClass,这里有个细节llvm在编译阶段做了处理,使得isKindOfClass走objc_opt_isKindOfClass。方法内部实现:拿当前的传入对象的isa,呢么分为2种情况: 1 、传入的ob…
OC底层-揭开cache_t的神秘面纱
这里要注意的是_maskAndBuckets采用了位域的方式存储mask和buckets,节省内存和读取方便。 第一次进来,为capacity申请空间INIT_CACHE_SIZE(4),为buckets申请内存,并且存储buckets和mask,_occupied = 0。 …
OC底层-方法的本质探究之方法的快速查找
最近工作有点忙,博客和底层之路有点拉下了。之前不怎么写博客,拾起博客的时候虽然每次写的时候很花时间,但是写完的感觉还是很棒。探究的时候可能会枯燥,甚至抓狂,写出来的时候总觉得一切都值得了。也算是鼓励自己坚持下去。 上篇cache_t的结构和写入已经分析了,本篇就看下cache是…
OC底层-方法的本质探究之方法的慢速查找
上篇文章分析了,方法的本质是消息的发送,并主要探究了方法的快速查找流程,即去类的缓存中查找。如果缓存中没有查找到,就会JumpMiss,进入__objc_msgSend_uncached流程。 __objc_msgSend_uncached,会走方法列表查询流程MethodTa…
下一页
关注了
4
关注者
1
收藏集
0
关注标签
7
加入于
2020-09-07