iOS 查漏补缺 - LLVM & Clang

2020-03-18
阅读 28 分钟
3.6k
LLVM 是一个自由软件项目,它是一种编译器基础设施,以 C++ 写成,包含一系列模块化的编译器组件和工具链,用来开发编译器前端和后端。它是为了任意一种编程语言而写成的程序,利用虚拟技术创造出编译时期、链接时期、运行时期以及“闲置时期”的最优化。它最早以 C/C++ 为实现对象,而当前它已支持包括 ActionScript、Ada...

iOS 查漏补缺 - RunLoop

2020-03-16
阅读 67 分钟
2.2k
作为 iOS 查漏补缺系列,这篇文章是笔者探索 RunLoop 底层的一些知识点总结,同时也借鉴了网上一些优秀的 RunLoop 技术文章的内容。

iOS 查漏补缺 - 线程

2020-03-13
阅读 17 分钟
1.9k
多线程是我们开发和面试中都会遇到的一个重要概念,相比于其他编程语言和平台,iOS 的多线程使用起来要比较友好和易用一些。但是对于多线程的基本概念,我们还是需要重视起来,这对于我们探索 pthread、NSThread、GCD 以及 RunLoop 都大有裨益。

iOS 查漏补缺 - PerformSelector

2020-03-12
阅读 27 分钟
3.7k
performSelector 系列的函数我们都不陌生,但是对于它不同的变种以及底层原理在很多时候还是容易分不清楚,所以笔者希望通过 runtime 源码以及 GUNStep 源码来一个个抽丝剥茧,把不同变种的 performSelector 理顺,并搞清楚每个方法的底层实现,如有错误,欢迎指正。本文的代码已放在 Github ,欢迎自取

iOS 底层探索 - KVO

2020-02-24
阅读 30 分钟
2.7k
在 Objective-C 和 Cocoa 中,有许多事件之间进行通信的方式,并且每个都有不同程度的形式和耦合:NSNotification & NSNotificationCenter 提供了一个中央枢纽,一个应用的任何部分都可能通知或者被通知应用的其他部分的变化。唯一需要做的是要知道在寻找什么,主要是通知的名字。例如,UIApplicationDidReceiveMemor...