App Store 面面观

一款 app 从开发者手里到最终交付到用户桌面的整个过程中,编写代码只是其中小小的一环,我们需要搭建相应的开发环境、分发完整产物进行测试、并最终将其配以合适的宣传文案以供用户享用。本文将叙述作为一名一线 iOS 开发者与 App Store「打交道」的纪实经历。
Read more →

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 →

C/C++ 中的位域与共用体

C/C++ 中有许多「奇技淫巧」来让开发者能够以效率更高的方式使用内存,这也是一些高级语言着力去避讳的一点,但这种能够直面内存细节的「踏实感」让我个人觉得非常安心。本文将简单涉及 C/C++ 中的位域与共用体的概念。
Read more →

Xcode 中的 Link Map 文件

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

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

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

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

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

618 买买买 - 买家秀

快递陆陆续续到啦,来看看晒单吧~
Read more →

618 买买买 - 这个 618 我都买了啥?

为了大家窥(zhong)探(cao)我 618 都败(Buy)了什么,特此总结一份清单,方便给大家参考(手动滑稽 🌝
Read more →

iOS 中的关联对象

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

谈谈我的家庭保险计划

曾经我也和很多人一样,都认为「保险」是坑人的。但后来经过一番研究,保险也确实很有必要,当然,我们都不希望保险真正被用到。这一篇就简单罗列下我为自己和家人目前配置的保险计划。
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 →

[译] URL 加载系统

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

iOS 中的 +initialize 方法

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