使用 UIKit 进行面向协议的编程

这是给稀土掘金的一篇译文,先帖我 blog 上,已经有小伙发现错误了,大家看看有其他啥错误没,英文原文 Swift 中令人耳目一新的『面向协议编程』在 2015 年 WWDC 上一经推出,街头巷尾都在热情洋溢地讨论着协议扩展(protocol extensions)---这一激动人心的语言新特性,既然是新特性,第一次接触总要走点弯路。 我已经阅读过无数篇关于 Swift 协议和协议扩展来龙去脉的文章,这些文章无疑都表达了同一个观点:在 »

当 Swift 中的协议遇到泛型

Swift 中的协议如果需要泛型化,可以通过抽象类型成员的方式实现,而不是在参数类型上做文章。至此,协议本身可以不再被当成是一个类型,而是看做一个通用的约束。英文原文 Update: Swift 2.2 已将协议中 associated types 的关键字由 typealias 替换为 associatedtype 问题 如果你曾将一个泛型协议当做类型使用: protocol GenericProtocol { typealias AbstractType func »

超越继承之路:协议混合

只要你学习过面向对象的语言比如 ObjC ,都知道继承的概念,他的一个用途是在多个类之间共享代码。但是这种解决方案存在一些问题。这篇文章我们来初探一下 Swift 的协议扩展,以及如何混合使用这些协议 - Mixins,英文原文地址 如果感觉太长了,读不下去,可以直接下载代码 Swift Playground Code 继承的问题 比如你有个 app,其中有大量的 UIViewController 类都要共享相同的行为,例如他们都有一个相同样式的汉堡菜单。你不想在每个 »