图书前言

前    言

世界在飞速发展,几乎每天都有变化,并且不时会有大事情发生并改变着整个行业。例如,iPhone诞生于2007年,在一夜之间改变了手机行业,率先迈向智能手机的新时代。iPad在发布三年后(2010年)改变了我们使用计算机的方式,这使许多人预测,我们都登上了PC时代的顶峰。

在20世纪80年代NeXT公司成立后的很长一段时间内,Objective-C被用于开发NeXT公司的NeXTSTEP操作系统。Mac OS X和iOS都来源于NeXTSTEP,因此Mac OS X和iOS开发语言自然就选择了Objective-C。开发人员在刚接触iOS开发时,会经常抱怨Objective-C看上去并不像一门现代编程语言(如Java或C#)并且很难写,通常要花大量的时间去学习。7年来,苹果公司已经对开发语言和iOS框架进行了改善,通过引入一些有用的功能,使得开发开发人员用起来更为容易,比如用自动引用计数(Automatic Reference Counting,ARC)来做内存管理的苦差事,同时引入Storyboard来简化用户操作界面。然而,抱怨还是没有停止,此外,苹果公司需要一门新的语言来把iOS和Mac操作系统发展到更高水平。

2014年,在苹果全球开发人员大会(WWDC)上,苹果公司发布了一门新的编程语言—— Swift,这震惊了许多开发人员。7年之后,苹果公司终于发布了一门新的语言来代替Objective-C。正如你将在本书中看到的,Swift是一门易于阅读的现代编程语言,并且对类型安全进行了严格控制。

本书是为忙碌的开发人员所准备的,旨在穿过所有的技术术语直接进入Swift语言的殿堂。当然,学习任何一门新的语言的最好方法就是查看代码示例,本书也为你呈现了这些示例。为了从本书中获取更多的知识,强烈建议你在阅读每章的示例时亲自实现一下。

本书读者对象

本书的读者对象是初级iOS开发人员和有经验的Objective-C开发人员。对于具备编程基础并且已经理解面向对象编程(Object-Oriented Programming,OOP)的开发人员来说,本书也能发挥巨大作用。

所有章节的代码示例都是在Xcode 6上编写的并且已经测试过。因为Swift语言仍处在发展当中,所以当本书面世时,Swift语言应该会有一些小的调整。

本书组织结构

本书介绍使用Xcode 6进行Swift编程的一些关键主题,总共包括如下12章内容:

第1章:“初识Swift”,涵盖Swift的基本语法以及如何配置开发环境,从而测试Swift代码。

第2章:“数据类型”,涵盖Swift支持的基本数据类型以及如何执行它们涉及的常见操作,并且介绍Swift新的元组和可选的数据类型。

第3章:“字符串和字符”,讨论在Swift语言中如何管理字符和字符串类型。特别强调Swift语言中的字符串类型是如何向后兼容Objective-C中的NSString类型的。同时介绍在处理字符集时必须知道的内容。

第4章:“基本运算符”,涵盖Swift语言中的常用运算符。此外,还讨论在Swift语言中一些运算符新的使用范围。

第5章:“函数”,介绍如何在Swift语言中进行函数定义以及在调用函数的时候如何使用内部参数和形参。

第6章:“集合”,涵盖Swift语言中支持的集合类型—— 数组和字典。

第7章:“控制流和循环”,介绍如何在Swift语言中作出判断以及如何使用循环语句执行重复的代码。

第8章:“结构体和类”,涵盖编程结构的基础知识,还演示如何在类和结构体中定义属性和方法。

第9章:“继承”,介绍如何在Swift语言中定义子类以及如何控制成员变量的访问权限,同时还展示如何扩展类。

第10章:“闭包”,涵盖你需要知道的有关功能块的所有知识以及如何使用Swift语言来实现它们。

第11章:“协议与代理”,讨论Swift语言中设计模式最重要的一部分,协议和代理模式是在iOS和Mac OS中大部分API上编程的基础。

第12章:“泛型”,本章描述在Swift语言中是如何包含“泛型”这个熟悉的编程概念的。泛型允许开发人员编写高度灵活的代码,促进代码共享和重用。

练习题的答案在书末的附录中。

使用本书的前提

为了实现本书中提供的代码示例,需要一台Mac电脑并装上Xcode 6。在Mac App Store中,Xcode 6是可以免费下载的。不需要用iOS设备测试本书中的代码。为了测试,可以创建Playground项目或iOS项目,然后在iPhone模拟器上进行测试。

勘误表

尽管我们已经尽了各种努力来保证文章或代码中不出现错误,但是错误总是难免的,如果你在本书中找到了错误,例如拼写错误或代码错误,请告诉我们,我们将非常感激。通过勘误表,可以让其他读者避免受挫,当然,这还有助于提供更高质量的信息。

要在网站上找到本书的勘误表,可以登录http://www.wrox.com,通过Search工具或书名列表查找本书,然后在本书的细目页面上,单击Book Errata链接。在这个页面上可以查看Wrox编辑已提交和粘贴的所有勘误项。完整的图书列表还包括每本书的勘误表,网址是www.wrox.com/misc-pages/ booklist.shtml。

如果在Book Errata页面上没有看到你找出的错误,请进入www.worx.com/contact/ techsupport.shtml,填写表单,发电子邮件,我们就会检查你的信息,如果是正确的,就在本书的勘误表中粘贴一个消息,我们将在本书的后续版本中采用。

p2p.wrox.com

P2P邮件列表是为作者和读者之间的讨论而建立的。读者可以在p2p.wrox.com上加入P2P论坛。该论坛是一个基于Web的系统,用于传送与Wrox图书相关的信息和相关技术,与其他读者和技术用户交流。该论坛提供了订阅功能,当论坛上有新帖子时,会给你发送你选择的主题。Wrox作者、编辑和其他业界专家和读者都会在这个论坛上进行讨论。

在http://p2p.wrox.com上有许多不同的论坛,帮助读者阅读本书,在读者开发自己的应用程序时,也可以从这个论坛中获益。要加入这个论坛,必须执行下面的步骤:

(1) 进入p2p.wrox.com,单击Register链接。

(2) 阅读其内容,单击Agree按钮。

(3) 提供加入论坛所需的信息及愿意提供的可选信息,单击Submit按钮。

(4) 然后就可以收到一封电子邮件,其中的信息描述了如何验证账户,完成加入过程。

加入论坛后,就可以发送新信息,回应其他用户的帖子。可以随时在Web上阅读信息。如果希望某个论坛给自己发送新信息,可以在论坛列表中单击该论坛对应的Subscribe to this Forum图标。

对于如何使用Wrox P2P的更多信息,可阅读P2P FAQ,了解论坛软件的工作原理,以及许多针对P2P和Wrox图书的常见问题解答。要阅读FAQ,可以单击任意P2P页面上的FAQ链接。

源代码

如果想运行本书示例中的代码,需要把所有代码输入到Xcode中,然后运行并观察结果。记住,学习一门语言的最好方法就是亲自去实践并且犯错误。对于第11章,可以在网页www.wrox/com/go/beginningswift上找到LBS项目的源代码。在该页面上,只需找到这本书的书名(使用Search框或书名列表)并在本书的详细页面上点击Download Code链接,即可获得本书的所有源代码。

下载代码之后,用你最喜欢的压缩工具解压缩。也可以去Wrox主页下载本书的代码,下载地址为www.wrox.com/dynamic/books/download.aspx,在上面还可以看到Wrox公司其他的图书。