iOS 多线程技术实践之 pthreads(一)

在现代计算机中,操作系统一般都会支持多进程以及多线程技术,使得其可以同时运行多个程序且效率更高。而我们在开发 iOS app 中也时常需要利用到这些特性,以为用户提供更加良好的使用体验。通常来说,一个 iOS app 为一个进程,其中又至少有一个线程,即主线程;前者进程由操作系统创建我们很难干预,而线程则「自由」许多,可以为我们所用。由于多线程技术内容较多,我将把相关内容进行拆分,本文作为该系列第一篇,先从 pthreads 说起。
Read more →

iOS 中的库与框架

随着软件工程的发展,很多我们需要的功能前人都已经很好地实现了,为了提高效率避免重复建设,这些功能实现的代码被封装为代码库,有时也称框架。我们只需要在用到的时候通过依赖管理工具将它们以适当的方式引入即可。本文将简单聊聊 iOS 中的库与框架相关概念。
Read more →

SwiftTips in Reverse

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

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

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

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

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

Objective-C 与 Swift 桥接中的坑

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

在 Swift 中对集合类型元素的弱引用

在 Swift 中对集合类型元素的弱引用。
Read more →

Swift 中的 @autoclosure

Swift 中的 @autoclosure。
Read more →

浅谈 iOS 应用启动过程

浅谈 iOS 应用启动过程。
Read more →

探究 UIViewController 生命周期

对象的生命周期一直是开发者所需要关心的,教授 CS193p 的老师 Paul 也详细的讲述了 UIViewController 的生命周期。为了记述这一过程,故作此文。由于 Xcode 提供了纯代码和 Storyboard(Xib 同理)两种布局 UI 的方式,因此初始化部分略有不同。
Read more →

Swift 中的 Selector

Swift 中的 Selector。
Read more →

浅谈 Swift 中的属性(Property)

Swift 中的属性分为存储属性与计算属性,存储属性即为我们平时常用的属性,可以直接赋值使用,而计算属性不直接存储值,而是根据其他(存储)属性计算得来的值。
Read more →