浅尝 objc_msgSend

Obj-C 中方法调用的本质是消息发送机制,即 [foo bar] 是向 foo 对象发送一条 bar 的消息,而消息发送就是通过 objc_msgSend 所进行的。那么这次本文就简单窥探一下 objc_msgSend 吧。
Read more →

Obj-C 中的 isa 指针

isa 指针是所有 Obj-C 对象中都拥有的一个成员。因为除了继承链之外,Obj-C 还特有一条从实例对象到类对象、元类对象的链。而后者正是依靠 isa 而串联起来的,那么本文就将结合源码谈谈 Obj-C 中的 isa
Read more →

Obj-C 中的对象

Obj-C 中的对象分为实例对象、类对象、以及元类对象,本文将深入源码,浅谈这些不同的 Obj-C 对象。
Read more →

Xcode 中的 Link Map 文件

Link Map File,译作链接映射文件。Xcode 在构建可执行文件之前,需要先编译为目标文件(Object File),并链接所需要的其他库,那么 Link Map 文件就记录了链接器(Linker)在链接过程中产生的一些信息,本文将谈谈这个文件的构成。
Read more →

Obj-C 中的 Block

Obj-C 中的 Block,即闭包,其相关知识点非常多,那么本文就来仔细谈谈其中的概念与原理。
Read more →

C/C++ 中的 const、static & extern

conststatic & extern 是 C/C++ 中的关键字,而在 iOS 开发中的 Obj-C/C++ 又是 C/C++ 的超集,本篇就简单梳理以下这些关键字的作用。
Read more →

iOS 中的关联对象

提到 iOS 中的关联对象,即 Associated Objects,又可以算是一项利用 Runtime 的「黑魔法」。然而作为初学者,很难从其名称联想到是为谁关联对象,以及是如何关联对象的,那么今天就来一起研究下 iOS 中的关联对象是什么、怎么用、以及为什么。
Read more →

将 Obj-C 代码翻译为 C/C++ 代码

Objective-C => C/C++
Read more →

[译] 在 Objective-C API 中指定可空性

使用可空性(Nullability)标志或标志一块区域,以控制将 Objective-C 声明导入 Swift 中的方式。
Read more →

Swift/Obj-C 混编项目升级 Swift 5.0 踩坑

在 ABI 稳定前,每次 Swift 升级都是一个比较「痛苦」的体验。这次笔者花费约总共一天时间将 Swift/Obj-C 混编项目升级到 Swift 5.0,其中还是有一些踩坑经验值得分享的。
Read more →