iOS 中的关联对象

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

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

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

[译]URL 加载系统

使用标准互联网协议与 URL 交互,并和服务器通信。
Read more →

《编写高质量 iOS 与 OS X 代码的 52 个有效方法》阅读笔记

🚧 Building… 🚧 Standing on the shoulders of giants.
Read more →

iOS 中的 +initialize 方法

在 iOS 中,经常与 +load 相提并论的一个方法便是 +initialize。从方法名来看,它的作用是进行初始化,但不同于平时使用的 init,+initialize 是一个类方法。那么它的本质到底是什么呢?
Read more →

iOS 中的 +load 方法

在 iOS 开发中,我们经常会使用 +load 方法来做一些在 main 函数之前的操作,比如方法交换(Method Swizzle)等。那么 +load 到底是如何被调用的呢?
Read more →

iOS 中的 Category

iOS 中的 Category 中文常译作分类、类别。我们经常会使用 Category 来对一个类进行扩展,使得在不破坏主类结构的同时可以具备更多的功能;也可以使用 Category 对一个类进行拆分,使得其结构更加清晰条理。本文将从 What - How - Why 谈谈 iOS 中 Category。
Read more →

Obj-C & Swift 的类型内省与反射

许多编程语言中都有类型内省(又称自省,Introspection)和反射(Reflection)这两个概念,本文将探讨一下 Obj-C 和 Swift 中类型内省和反射的相关概念与具体使用。
Read more →

Xcode 中的 Link Map 文件

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

Obj-C 中成员变量和类的访问控制

Obj-C 中的成员变量,即 Instance Variables,简称为 ivar。在面向对象的概念中,一个类的对外暴露决定了其所提供的能力,对子类则需要提供一定的扩展性,但有些时候我们不希望外界甚至子类知道一些细节,这时就用到了访问控制(Access Control)。在 C++、Java、Swift 等大多数高级语言中都有这样的概念,这次就来谈谈 Obj-C 中成员变量和类的访问控制。
Read more →