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 →

iOS 中的 +initialize 方法

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

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

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

Obj-C 中实例变量和类的访问控制

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

iOS 中的 KVC

KVC,即 Key-Value Coding,译作键值编码。当对象兼容 KVC 时,可以通过统一的 API 访问对象中某个键对应的属性值。Cocoa 中的许多功能都依赖 KVC,比如,KVO、Cocoa 绑定机制、Core Data、以及 AppleScript 等。
Read more →

Obj-C 中的重载与重写

重载(Overload)和重写(Override)是面向对象语言中十分基本的两个概念,本文将谈谈 Obj-C 中的重载与重写。
Read more →

iOS 中的 KVO

KVO 即 Key-Value Observing,译作键值监听,通常用于监听对象的某个特定属性值的变化。本文将由浅入深,谈谈 iOS 中的 KVO。
Read more →