SwiftTips in Reverse

SwiftTipsJohn Sundell 在 GitHub 开源的 Swift 小技巧列表。随着 Swift 5 的发布以及 ABI 稳定,是时候再学习一遍 Swift 啦。本文将是该列表的实践版本,并保证文中代码的可运行性,且尽可能做到倒序日更。(But why in reverse? 🤫)
Read more →

Obj-C 中的 isa 指针

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

Xcode 中的 Link Map 文件

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

[译] 摊平由「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 中的 +initialize 方法

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

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

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

[译] Swift 名字修饰(Name Mangling)

翻译自 Friday Q&A 2014-08-08: Swift Name Mangling
Read more →

iOS 中的 KVO

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

iOS 中的 NSObject

iOS 中的 NSObject。
Read more →

Objective-C 与 Swift 桥接中的坑

Objective-C 与 Swift 的混编是全面转向 Swift 中的必经之路,本篇即是这一过程中的踩坑「真实」记录。
Read more →