作者:Benedikt Terhechte,原文链接,原文日期:2015-08-20
译者:mmoaay;校对:numbbbbb;定稿:千叶知风

在众多 Swift 提供给 Objective-C 程序员使用的新特性中,有个特性把自己伪装成一个无聊的老头,但是却在如何优雅的解决“鞭尸金字塔“的问题上有着巨大的潜力。很显然我所说的这个特性就是 switch 语句, 对于很多 Objective-C 程序员来说,除了用在 Duff’s Device 上比较有趣之外,switch 语句非常笨拙,与多个 if 语句相比,它几乎没有任何优势。

阅读全文

作者:Olivier Halligon,原文链接,原文日期:2015-10-11
译者:ray16897188;校对:Prayer;定稿:numbbbbb

系列文章地址:

在本系列之前的文章中我们学到了如何使用mapflatMap来操作数组(arrays)。今天我们继续研究如何对可选类型(Optionals)以及很多其他类型使用mapflatMap

阅读全文

作者:ioscreator,原文链接,原文日期:2015-09-17
译者:pmst;校对:靛青K;定稿:千叶知风

iOS 9 介绍了 Collection View 单元格的重新排序新特性。该特性默认开启,用户可以通过长按单元格的进行重新排序,调整其在视图中的位置。而我们要做的仅仅只是更新数据源模型。本教程中,我们将显示一些包含字母的单元格并对其进行重新排序。本教程部署于 iOS 9 和 Xcode 7。

阅读全文

作者:Olivier Halligon,原文链接,原文日期:2015-10-03
译者:ray16897188;校对:pmst;定稿:小锅

系列文章地址:

继续说咱的”Swift编程思想系列”,今天我们将会做一些小小的改动,使用 struct(结构体) 来使代码得到进一步的简化。

阅读全文

作者:Mike Ash,原文链接,原文日期:2015-09-04
译者:Yake;校对:shanks;定稿:小锅

译者注:这篇文章的代码是用 Objective-C 完成的,不过不妨碍大家学习多线程编码的知识。

Grand Central Dispatch 是过去几年中苹果推出过的许多很棒的 API 中的一员。在最新一期的 “Let’s Build” 系列中,我准备去探索 dispatch_queue 一些最基本特性的重新实现,这个主题的建议来自 Rob Rix。

阅读全文

作者:Ole Begemann,原文链接,原文日期:2015-09-18
译者:lfb_CD;校对:pmst;定稿:千叶知风

Swift中的模式匹配

更新:
2015.9.19: 添加了一些关于Swift语法问题的笔记。把自定义操作符的符号改为了一个我认为更加适合的。在总结中添加了一些对函数式编程的想法。
2015.9.25: 添加了关于标准库中已经存在的~>操作符的笔记

阅读全文

作者:Erica Sadun,原文链接,原文日期:2015-09-03
译者:我偏笑;校对:shanks;定稿:千叶知风

try? 语法的优点在于你不必把可能会抛出错误的函数写在一个 do-catch 代码块当中。如果你使用了 try?,该函数的返回值就会是一个可选类型:成功返回 .Some,失败则返回 .None。你可以配合着 if-let 或者 guard 语句来使用 try? 语法。

阅读全文

作者:Dominik Hauser,原文链接,原文日期:2015-09-18
译者:DianQK;校对:小铁匠Linus;定稿:小锅

最近我读了一篇在 Objective-C 中使用 control swizzling 测试UIAlertController文章。这样的文章总是促使我寻找一种不使用 control swizzling 也可以测试同样东西的方法。虽然,我知道 swizzling 是开发者的一个非常有力的工具,但我个人是尽可能去避免去使用它的。事实上,在最近的六年时间里,我只在一个应用上用了 swizzling。所以我相信我们现在可以不使用 swizzling 来实现测试。

那么问题来了,如何在 Swift 中不使用 swizzling 来对UIAlertController 进行测试?

阅读全文

作者:Benedikt Terhechte,原文链接,原文日期:2015-07-19
译者:mmoaay;校对:lfb_CD;定稿:numbbbbb

作为 Swift 中比较少见的语法特性,元组只是占据了结构体和数组之间很小的一个位置。此外,它在 Objective-C(或者很多其他语言)中没有相应的结构。最后,标准库以及 Apple 示例代码中对元组的使用也非常少。可能它在 Swift 中给人的印象就是用来做模式匹配,但我并不这么认为。

和元组相关的大部分教程都只关注三种使用场景(模式匹配、返回值和解构),且浅尝辄止。本文会详细介绍元组,并讲解元组使用的最佳实践,告诉你何时该用元组,何时不该用元组。同时我也会列出那些你不能用元组做的事情,免得你老是去 StackOverflow 提问。好了,进入正题。

阅读全文

作者:Olivier Halligon,原文链接,原文日期:2015-09-20
译者:我偏笑;校对:pmst;定稿:shanks

本系列的第一篇文章中,介绍了如何避免对可选类型强制解包以及拯救“小马”🐴 。在第二部分中,我们将会精简前文代码来让它看起来更有”雨燕风”(Swift-er : Swift编程语言风格),同时向你介绍 map()flatMap() 方法。

阅读全文

作者:Olivier Halligon,原文链接,原文日期:2015-09-20
译者:我偏笑;校对:pmst;定稿:shanks

本系列的第一篇文章中,介绍了如何避免对可选类型强制解包以及拯救“小马”🐴 。在第二部分中,我们将会精简前文代码来让它看起来更有”雨燕风”(Swift-er : Swift编程语言风格),同时向你介绍 map()flatMap() 方法。

阅读全文

作者:Arthur Knopper,原文链接,原文日期:2015-09-14
译者:小铁匠Linus;校对:numbbbbb;定稿:小锅

在 iOS 9 之前,即使是创建相对简单的用户界面(User Interface),也需要在使用自动布局(Auto Layout)时添加大量的约束(Constraint)。在 iOS 9 中,苹果官方引进了 Stack View,它会为每个新增的子视图自动添加自动布局的约束。在本教程中,我们会创建一个包含三个子视图的纵向 Stack View。本教程使用 Xcode 7 和 iOS 9 实现。

阅读全文

作者:Arthur Knopper,原文链接,原文日期:2015-09-14
译者:小铁匠Linus;校对:numbbbbb;定稿:小锅

在 iOS 9 之前,即使是创建相对简单的用户界面(User Interface),也需要在使用自动布局(Auto Layout)时添加大量的约束(Constraint)。在 iOS 9 中,苹果官方引进了 Stack View,它会为每个新增的子视图自动添加自动布局的约束。在本教程中,我们会创建一个包含三个子视图的纵向 Stack View。本教程使用 Xcode 7 和 iOS 9 实现。

阅读全文