作者:AppCoda,原文链接,原文日期:2015-08-27
译者:saitjr;校对:numbbbbb;定稿:shanks

很多应用都需要搜索功能并把结果展示在UITableView中。毋庸置疑,很多开发者都遇到过这种开发需求。通常的做法都是直接使用 iOS SDK 中自带的控件。iOS 8 以前,苹果提供了一个用于具有搜索功能的控制器UISearchDisplayController。使用这个控制器,结合UISearchBar,能更方便的在应用中添加搜索特性。然而,这些都已成为历史。

iOS 8 到来以后,这种实现方式发生了改变。首先,UISearchDisplayController被弃用,即使他可以在 IB(Interface Builder) 界面中使用。而现在,出现了一个新的控制器UISearchController,但它却没有在 IB(Interface Builder) 中显示。相反,需要编码来进行初始化并配置,其实这很简单,接下来的文章中将会介绍到。

阅读全文

作者:AppCoda,原文链接,原文日期:2015-08-27
译者:saitjr;校对:numbbbbb;定稿:shanks

很多应用都需要搜索功能并把结果展示在UITableView中。毋庸置疑,很多开发者都遇到过这种开发需求。通常的做法都是直接使用 iOS SDK 中自带的控件。iOS 8 以前,苹果提供了一个用于具有搜索功能的控制器UISearchDisplayController。使用这个控制器,结合UISearchBar,能更方便的在应用中添加搜索特性。然而,这些都已成为历史。

iOS 8 到来以后,这种实现方式发生了改变。首先,UISearchDisplayController被弃用,即使他可以在 IB(Interface Builder) 界面中使用。而现在,出现了一个新的控制器UISearchController,但它却没有在 IB(Interface Builder) 中显示。相反,需要编码来进行初始化并配置,其实这很简单,接下来的文章中将会介绍到。

阅读全文

作者:Benedikt Terhechte,原文链接,原文日期:2015-08-25
译者:lfb_CD;校对:小锅;定稿:shanks

Swift 2.0 beta 6 新增了一个关键字 try?,这为我们处理异常又增加一个新的途径。这篇简短的文章阐述了这个关键字的基础知识,同时说明为何这个新关键字很酷。

在 Swift 1.x 中,我们只能通过可选数据类型和 NSError 来处理异常。我们可以在其他编程语言中看到 Either/Result这样的形式,于是很多人将这种形式移植到 Swift 当中:

阅读全文

作者:Benedikt Terhechte,原文链接,原文日期:2015-08-25
译者:lfb_CD;校对:小锅;定稿:shanks

Swift 2.0 beta 6 新增了一个关键字 try?,这为我们处理异常又增加一个新的途径。这篇简短的文章阐述了这个关键字的基础知识,同时说明为何这个新关键字很酷。

在 Swift 1.x 中,我们只能通过可选数据类型和 NSError 来处理异常。我们可以在其他编程语言中看到 Either/Result这样的形式,于是很多人将这种形式移植到 Swift 当中:

阅读全文

作者:Olivier Halligon,原文链接,原文日期:2015-08-28
译者:小锅;校对:numbbbbb;定稿:shanks

今天我们要研究 Swift 函数中一些好玩的特性,比如返回函数的函数,柯里化以及运算符函数。

函数的基础

在这篇文章中,我们将使用一个返回 Bool 类型的函数来判断它的参数是否匹配某个条件,这个函数接收一个 Int 类型的参数。像这类功能可以使用filter方法对整型数组进行过滤。

阅读全文

作者:Natasha,原文链接,原文日期:2015-08-17
译者:小铁匠Linus;校对:Channe;定稿:小锅

自从令人兴奋的Swift 面向协议编程 WWDC 讲座发布,我就在思考协议的用法。但是现实中,我并没有使用过它们。我仍在消化面向协议编程的含义,之后就可以在代码中用面向协议编程模式替换面向过程编程模式了。

一个庞大的案例涌上心头:MVVM ! 我之前用过 MVVM,如果你想要具体了解,可以看我之前发表的关于 MVVM 的博客。不过面向协议的内容都在本篇文章。

阅读全文

作者:Raj Kandathi,原文链接,原文日期:2015-08-31
译者:小铁匠Linus;校对:Prayer;定稿:shanks

枚举是用来表示值的“类型”,其中这些值之间是类似的。假如现在有个应用叫MyFamily,你每次打开这个应用它都会展示你家庭中的成员以及成员之间的关系。现在,家庭中每个成员跟你就只有那么几种关系(值)。这种关系可以用枚举类型的FamilyRelationshipType来表示。

这个FamilyRelationshipType在本质上是一种全新的数据类型。

阅读全文

作者:Raj Kandathi,原文链接,原文日期:2015-08-15
译者:pmst;校对:numbbbbb;定稿:shanks

注:作者连续写了两篇文章,我们将译文合并到了一起

上篇

我们习惯于使用for-in语句来遍历集合,比如数组/字典。

举例来说:

let library = ["The Swift Programming Language", "The Pragmatic Programmer", "Clean Code", "Refactoring"]
for book in library {
  println(book)
}

我们把图书馆内容封装到一个数组当中;接着,视图层(UI layer)将从数据层(data layer)中获取一个图书馆对象。正如上面代码所示,图书馆对象是一个集合(这里为数组),支持用for-in语句遍历整个馆内藏书。

阅读全文

作者:Natasha,原文链接,原文日期:2015-08-30
译者:小铁匠Linus;校对:Prayer;定稿:shanks

昨天,我抽空看了Swift in Practice WWDC15 Session的视频,很喜欢其中对 Image 命名的处理建议。

这个视频里解决的问题是方法UIImage:named:总需要传入硬编码(hard-coded)的字符串参数,然后返回一个可空(optional)的UIImage。这就意味着可能会有两种出错的情况:一种是字符串的拼写错误;另一种是对可选的UIImage不正确解包。

阅读全文

作者:Arthur Knopper,原文链接,原文日期:2015-07-09
译者:lfb_CD;校对:numbbbbb;定稿:shanks

苹果公司提供了UIimagePickerController-这是一个使用 iOS 设备内置的摄像头来拍摄视频的可视化界面。在此教程中,我们将拍摄一段保存到手机相册的视频。教程运行在 iOS 8.4 和 Xcode 6.4 下。

打开 Xcode 并创建一个new Single View Application,项目名称为IOS8SwiftTakeVideoPlayerTutorial,接着填上你的Organization NameOrganization Identifier,选择 Swift 语言,在设备一栏只选择 iPhone。

阅读全文

作者:Natasha,原文链接,原文日期:2015-08-30
译者:小铁匠Linus;校对:Prayer;定稿:shanks

昨天,我抽空看了Swift in Practice WWDC15 Session的视频,很喜欢其中对 Image 命名的处理建议。

这个视频里解决的问题是方法UIImage:named:总需要传入硬编码(hard-coded)的字符串参数,然后返回一个可空(optional)的UIImage。这就意味着可能会有两种出错的情况:一种是字符串的拼写错误;另一种是对可选的UIImage不正确解包。

阅读全文

作者:Raj Kandathi,原文链接,原文日期:2015-08-15
译者:pmst;校对:numbbbbb;定稿:shanks

注:作者连续写了两篇文章,我们将译文合并到了一起

上篇

我们习惯于使用for-in语句来遍历集合,比如数组/字典。

举例来说:

let library = ["The Swift Programming Language", "The Pragmatic Programmer", "Clean Code", "Refactoring"]
for book in library {
  println(book)
}

我们把图书馆内容封装到一个数组当中;接着,视图层(UI layer)将从数据层(data layer)中获取一个图书馆对象。正如上面代码所示,图书馆对象是一个集合(这里为数组),支持用for-in语句遍历整个馆内藏书。

阅读全文

作者:Olivier Halligon,原文链接,原文日期:2015-08-28
译者:小锅;校对:numbbbbb;定稿:shanks

今天我们要研究 Swift 函数中一些好玩的特性,比如返回函数的函数,柯里化以及运算符函数。

函数的基础

在这篇文章中,我们将使用一个返回 Bool 类型的函数来判断它的参数是否匹配某个条件,这个函数接收一个 Int 类型的参数。像这类功能可以使用filter方法对整型数组进行过滤。

阅读全文

作者:Arthur Knopper,原文链接,原文日期:2015-07-09
译者:lfb_CD;校对:numbbbbb;定稿:shanks

苹果公司提供了UIimagePickerController-这是一个使用 iOS 设备内置的摄像头来拍摄视频的可视化界面。在此教程中,我们将拍摄一段保存到手机相册的视频。教程运行在 iOS 8.4 和 Xcode 6.4 下。

打开 Xcode 并创建一个new Single View Application,项目名称为IOS8SwiftTakeVideoPlayerTutorial,接着填上你的Organization NameOrganization Identifier,选择 Swift 语言,在设备一栏只选择 iPhone。

阅读全文

作者:Raj Kandathi,原文链接,原文日期:2015-08-31
译者:小铁匠Linus;校对:Prayer;定稿:shanks

枚举是用来表示值的“类型”,其中这些值之间是类似的。假如现在有个应用叫MyFamily,你每次打开这个应用它都会展示你家庭中的成员以及成员之间的关系。现在,家庭中每个成员跟你就只有那么几种关系(值)。这种关系可以用枚举类型的FamilyRelationshipType来表示。

这个FamilyRelationshipType在本质上是一种全新的数据类型。

阅读全文

作者:Natasha,原文链接,原文日期:2015-08-17
译者:小铁匠Linus;校对:Channe;定稿:小锅

自从令人兴奋的Swift 面向协议编程 WWDC 讲座发布,我就在思考协议的用法。但是现实中,我并没有使用过它们。我仍在消化面向协议编程的含义,之后就可以在代码中用面向协议编程模式替换面向过程编程模式了。

一个庞大的案例涌上心头:MVVM ! 我之前用过 MVVM,如果你想要具体了解,可以看我之前发表的关于 MVVM 的博客。不过面向协议的内容都在本篇文章。

阅读全文

作者:Natasha,原文链接,原文日期:2015-07-29
译者:Channe;校对:numbbbbb;定稿:小锅

早上我看到@jesse_squires发了个好推:

#Swift小贴士: 在IBOutletsdidSet中设置视图,而不是将代码塞满viewDidLoad。这样更清晰,同样只被调用一次.

– Jesse Squires (@jesse_squires) 2015 年 7 月 29 日。

设置 App 界面元素的颜色、字体和辅助功能总是很痛苦。理想情况下,storyboard 能搞定,但是 storyboard 中的颜色管理相当糟糕(可以用Xcode调色板缓解这种痛苦)。更糟糕的是,比之更高级的辅助功能选项并不能在 storyboard 中设置。

阅读全文