MENU

标签 Swift 下的文章

如何让系统单例更易测试

Cover

UIApplicationUIScreen 为代表的单例模式是 iOS 中最为常见的设计模式了,你可以在代码中的任意位置调用其属性或者方法。但是这种便利也给程序代码来一些负面影响,这种全局共享状态的做法对于代码测试来说简直就是噩梦。虽然我们可以对部分单例进行重构,但是系统单例依旧需要一些技巧进行改造才能变成测试友好对象。

阅读全文

Swift 线程安全数组

Cover

有并发的地方就存在线程安全问题,尤其是对于 Swift 这种还没有内置并发支持的语言来说线程安全问题更为突出。下面我们通过常见的数组操作来分析其中存在的线程问题,以及如何实现一个线程安全数组。

阅读全文

Swift 中单例模式的替换

Cover

除了 MVC、MVVM 之外,单例模式可以说是 iOS 开发中另一常见的设计模式。无论是 UIKit 或是一些流行的三方库,我们都能看到单例的身影。而我们开发者本身也会潜意识地将这些类库中的代码当作最佳实践并将其带入日常工作中,哪怕很多人都知道单例存在一些明显的缺陷。

针对单例的缺陷,本文将介绍一些替换或改造单例模式的方法来提升代码质量。

阅读全文

Switch 新知

Cover

从概念提出以来 Switch 语法几乎是所有高级编程语言的标配,而 Swift 中的类型系统则进一步放大了它使用场景。正常情况下,我们会在对某个变量进行多状态判断时使用 Switch 语句。这样代码的控制流就与某一特定状态进行了绑定,同时代码也变得可读性强更易调试。

阅读全文

RxSwift 之变换操作

Cover

可能刚开始接触 RxSwift 时候,你会觉得 RxSwift 非常难懂也不容易学。其实学习每一门新知识或多或少都会出现这种情况。不过我相信认知读了前几篇文章后,你会深感 RxSwift 的强大。它在简化代码量的同时也让整个程序的逻辑变的更为清晰。

这篇文章将会继续介绍另一组非常重要的 RxSwift 操作:Transforming Operator 。通过这组操作我们可以在观察者使用之前对数据进行一次预处理。

阅读全文