[译] 摊平由「try?」造成的嵌套可选

Flatten nested optionals resulting from ‘try?’
Read more →

iOS 中的关联对象

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

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

在 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 中的 Category

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