首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Evan_Mrlin
掘友等级
IOS开发
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
1
文章 1
沸点 0
赞
1
返回
|
搜索文章
最新
热门
iOS底层原理11:objc_msgSend慢速查找流程
在上一篇iOS底层原理10:objc_msgSend快速查找流程文章中,我们分析了快速查找流程,如果快速查不到,则会进入慢速查找流程,本文将分析慢速查找的流程。 上述的汇编流程,我们可以通过汇编调试来验证。 在main中,[p say]对象方法调用处加一个断点。 开启汇编调试【…
iOS底层原理10:objc_msgSend快速查找流程
本文探索一下方法的本质,而在探索之前,我们先简单了解 Runtime 的知识点。 编译时 是源代码翻译成机器能识别的代码的过程,主要是对语言进行最基本的检查,即词法分析、语法分析等,是静态类型检查。 运行时 是代码跑起来,被装载到内存中的过程,如果此时出错,则程序会崩溃,是静态…
iOS底层原理09:cache_t底层原理探索
这篇文章将对类结构中cache_t的分析。 cache_t源码。 从源码中可以看出,在macOS、64位真机和非64位真机环境下有不同的处理。 explicit_atomic显示原子性,为线程的安全。 其中在真机环境下,mask和bucket是写在一起,目的是为了优化。 buc…
iOS底层原理08:iOS经典面试题分析
这篇文章需要涉及到 isa 与 superclass 的指向流程分析,如果你对此不清晰,可以在iOS底层原理05:isa底层原理探索下这篇文章中了解一下。 多花点时间思考思考...... 通过断点调试,遇到了一个坑,isKindOfClass不走源码的流程,而是走到objc_o…
iOS底层原理07:类的底层原理探索(2)
上一篇iOS底层原理06:类的底层原理探索(1)已经对类的底层原理有了初步的探索,这篇文章将继续探索。 执行p $5.get(1)获取第二个属性,发现lldb报数组越界的错误信息。 说明明 property_list 中只有 一个属性name。 类的属性存储在bits中,通过通…
iOS底层原理06:类的底层原理探索(1)
本文所采用的源码为苹果开源的最新 objc4-781 版本。 1.对象的本质是个结构体。 2.NSObject_IVARS本质是class类型的isa。 3.objc_class是一个结构体。在iOS中,所有的Class都是以 objc_class 为模板创建的。 于是在obj…
iOS底层原理05:isa底层原理探索下
通过上一篇文章iOS底层原理04:isa底层原理探索上的探索,我们对isa有了更清晰的认识,这篇文章将继续探索isa的走位。 首先我们定义一个person,并且在NSLog处打个断点调试。(以下调试如不做说明,都处于macOS环境下) 所以,两个打印都是Person的根本原因就…
iOS底层原理04:isa底层原理分析上
本文的主要目的是探索 isa是如何与当前的类关联在一起的。 Clang是一个由Apple主导编写,基于LLVM的C/C++/Objective-C编译器。 主要是用于底层编译,将一些文件``输出成c++文件,例如main.m 输出成main.cpp,其目的是为了更好的观察底层的…
iOS底层原理03:malloc源码分析
这篇文章将从源码分析calloc。 点击进入calloc方法,发现calloc方法是在malloc源码中的。 1、在可编译的libmalloc源码中,新建一个Target,File->New->Target->Application->Command Line Tool,在ma…
iOS底层原理02:内存对齐及结构体嵌套分析
现代计算机中内存空间都是按照 byte 划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但是实际的计算机系统对基本类型数据在内存中存放的位置有限制,它们会要求这些数据的首地址的值是某个数k(通常它为4或8)的倍数,这就是所谓的内存对齐。 某些硬件平台只能在某些地…
下一页
个人成就
文章被点赞
23
文章被阅读
12,008
掘力值
368
关注了
3
关注者
44
收藏集
0
关注标签
2
加入于
2020-09-06