首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
0d63bcd0aa2a11ea84f37d8b06c14a82
掘友等级
[账号违规已被封禁]
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
47
文章 47
沸点 0
赞
47
返回
|
搜索文章
最新
热门
iOS 底层探索 - 方法
众所周知,Objective-C 是一门动态语言,而承载整个 OC 动态特性的就是 Runtime。关于 Runtime 更多内容可以直接进入官网文档查看。 Runtime 是以 C/C++和汇编编写而成的,为什么不用 OC 呢,这是因为对我们编译器来说,OC 属于更高级的语言…
iOS 底层探索 - 消息查找
因为 C 无法通过写一个函数来保留未知的参数并且跳转到一个任意的函数指针。 objc_msgSend 必须足够快。 我们在探索 objc_msgSend 的时候,当找不到缓存的时候,会来到一个地方叫做 objc_msgSend_uncached,然后会来到 MethodTabl…
iOS 底层探索 - 消息转发
我们在上一章《消息查找》分析到了动态方法解析,为了更好的掌握具体的流程,我们接下来直接进行源码追踪。 // Resolver not implemented. 由这个流程图我们可以知道,元类最终继承于根元类,而根元类又继承于 NSObject,那么也就是说在根元类中存储的类方法…
iOS 底层探索 - 类的加载
在 main 函数执行执行,其实 dyld 还会在流程中初始化 libSystem,而 libSystem 又会去初始化 libDispatch,在 libDispatch 初始化方法里面又会有一步 _os_object_init,在 _os_object_init 内部就会调…
iOS 底层探索 - 分类的加载
上一章我们探索了 iOS 中类的加载,让我们简单回顾一下大概的流程。 我们大致明白了类的加载流程,接下来,让我们在 _read_images 源码中打印一下类加载之后的结果验证一下是否加载了我们自己创建的类。 但是打印出来的结果没有 LGPerson ,这是为什么呢?答案看这里…
iOS 底层探索 - 类拓展和关联对象
关于类拓展的具体定义,大家可以直接参考 Apple 对于类拓展的说明。 A class extension bears some similarity to a category, but it can only be added to a class for which yo…
iOS 底层探索 - KVC
Key Value Coding 也即 KVC 是 iOS 开发中一个很重要的概念,中文翻译过来是 键值编码 ,关于这个概念的具体定义可以在 Apple 的官方文档处找到。 Key-value coding is a mechanism enabled by the NSKey…
iOS 底层探索 - KVO
NSNotification & NSNotificationCenter 提供了一个中央枢纽,一个应用的任何部分都可能通知或者被通知应用的其他部分的变化。唯一需要做的是要知道在寻找什么,主要是通知的名字。例如,UIApplicationDidReceiveMemoryWarn…
iOS 查漏补缺 - PerformSelector
performSelector 系列的函数我们都不陌生,但是对于它不同的变种以及底层原理在很多时候还是容易分不清楚,所以笔者希望通过 runtime 源码以及 GUNStep 源码来一个个抽丝剥茧,把不同变种的 performSelector 理顺,并搞清楚每个方法的底层实现,…
iOS 查漏补缺 - 线程
多线程是我们开发和面试中都会遇到的一个重要概念,相比于其他编程语言和平台,iOS 的多线程使用起来要比较友好和易用一些。但是对于多线程的基本概念,我们还是需要重视起来,这对于我们探索 pthread、NSThread、GCD 以及 RunLoop 都大有裨益。 本节的大部分内容…
下一页
个人成就
文章被点赞
70
文章被阅读
53,232
掘力值
853
关注了
5
关注者
27
收藏集
0
关注标签
1
加入于
2020-05-15