前 言
iOS的流行将许多程序员吸引到Apple公司的平台。很长时间以来,OS X和iOS上的软件都是用Objective-C编写的,这门语言是在20世纪80年代开发的,它非常适合被描述为C和Smalltalk的混合体。Objective-C缺乏现代程序员期盼的许多编程语言特性。近十年来,Apple一直在调整和改进Objective-C,但许多程序员仍然觉得它是一门外星语言。
Swift是一门现代编程语言,在建立该语言时使用了近30年来在编程语言研究领域获得的成果。开发该语言的研究者还开发了clang,它是Apple用来构建OS X和iOS软件的现代编译器工具链。Swift包含了许多现代编程语言应该具有的特性。它支持一个强类型系统来避免在C和Objective-C编程中普遍存在的许多错误。它还提供一个精炼的支持静态和可计算属性的类系统。它支持闭包,并将函数视为一级类对象,从而可将它们保存到变量或作为参数传递给函数和方法。在阅读本书时,你还会继续发现Swift提供的许多高级特性。
Swift经过了重新设计,从而成为一种适合在Apple平台上进行系统开发和应用程序开发的现代编程语言。Apple已经为Swift提供了大量支持,且该语言仍在不断改进。Swift代表了iOS和OS X软件开发的未来,在这些平台上进行开发的程序员也期望Swift在这些系统中日益占据主导地位。
本书读者对象
本书面向具有在OS X和iOS上开发Objective-C应用程序经验的软件开发者。Swift的知识和经验虽然有用,但对于理解本书的内容来说并不是必需的。本书引入的Swift关键概念甚至对于高级iOS和OS X程序员来说也是陌生的。本书使用了几个小项目来说明其引入的概念。本书还大量使用了playground,Xcode的这个新特性允许不建立整个Xcode项目就能编写Swift代码并与Swift代码交互。
本书第1章主要介绍Swift的语法和语义,但没有介绍该语言的任何高级特性。第2章介绍Xcode的使用,其中包括playground。如果已经对Swift和Xcode比较熟悉,可以跳过第1章和第2章而直接从第3章开始。
本书主要内容
本书首先对Apple于2014年6月发布的Swift编程语言做了初步介绍,然后快速移到更高级的Swift编程主题,包括Xcode中新的playground特性;类、结构和枚举;并发编程以及Swift类型系统的高级特性。本书还介绍Swift程序员需要经常处理的实际问题,包括使用JSON与Web服务交互、Core Data以及在Swift项目中使用C和Objective-C代码。本书还演示Xcode的一些高级特性,包括如何使用Xcode内建的调试器,并讨论Swift和Objective-C运行时的底层细节。因为在OS X和iOS上编写软件时无法避免使用C语言,所以附录中提供了C语言的简要介绍。
本书结构
本书共分两部分。第Ⅰ部分介绍了Swift编程语言和Swift程序员可能遇到的实际问题。第Ⅱ部分深入讨论Swift错综复杂的细节。
● 第1章:回顾Swift编程语言的语法和语义。这对于那些对该语言陌生或想要快速了解该语言的程序员来说非常有用。
● 第2章:介绍Xcode中与Swift有关的变化。该章介绍Xcode的新特性playground,它提供了一种以交互方式使用Swift代码的方法。
● 第3章:以比第1章更详细的方式介绍Swift的类、结构和枚举,并为Swift中的面向对象编程打下坚实基础。
● 第4章:讨论Swift上下文环境中的并发编程以及iOS和OS X中的Foundation框架。
● 第5章:演示如何使用JSON与远程Web服务通信。
● 第6章:讨论如何使用Core Data存储和搜索程序使用的信息。
● 第7章:演示如何使用协议和类扩展来扩展类。
● 第8章:详细介绍Swift的类型系统,并演示如何使用Swift的强类型系统来编写错误更少的代码。
● 第9章:演示如何在Swift程序中混合C和Objective-C代码。
● 第10章:介绍调试器并演示如何跟踪和修复代码中的问题。
● 第11章:讨论Swift和Objective-C的运行时结构,并演示程序是如何在iOS和OSX中被加载和执行的。
● 附录A:介绍C语言引入的特性和概念。
阅读本书的条件
若要运行本书中的例子,需要具备下列条件:
● 运行OS X 10.9或更新版本的Mac电脑。
● Xcode 6。
● 如果想要在真实设备而不是Xcode的iOS模拟器中运行本书的例子,则还需要iPhone、iPod Touch或iPad。
源代码
可以在www.wrox.com中通过英文ISBN(本书的英文ISBN为978-1-119-01677-9)搜索本书来找到它的源代码。Wrox当前出版的所有书籍的源代码都可从www.wrox.com/ dynamic/books/download.aspx下载。
也可登录www.tupwk.com.cn/downpage,输入本书中文书名或中文ISBN,下载源代码。注意,本书译者针对最新版本对源代码做了更新,更新后的代码可从该网站下载。
www.wrox.com上的大多数源代码都被压缩为了.zip、.rar或类似的适合特定平台的文档格式。在下载源代码后,需要使用对应的压缩工具来解压缩。
在下载源代码后,可使用自己喜欢的压缩工具来解压缩。另外还可以进入位于www.wrox.com/dynamic/books/download.aspx处的Wrox代码下载主页中来查看本书和所有其他Wrox书籍的源代码。
勘误表
尽管我们已经尽了各种努力来保证文章或代码中不出现错误,但是错误总是难免的,如果你在本书中找到了错误,例如拼写错误或代码错误,请告诉我们,我们将非常感激。通过勘误表,可以让其他读者避免受挫,当然,这还有助于提供更高质量的信息。
要在网站上找到本书的勘误表,可以登录http://www.wrox.com,通过Search工具或书名列表查找本书,然后在本书的细目页面上,单击Book Errata链接。在这个页面上可以查看Wrox编辑已提交和粘贴的所有勘误项。完整的图书列表还包括每本书的勘误表,网址是www.wrox.com/misc-pages/ booklist.shtml。
如果在Book Errata页面上没有看到你找出的错误,请进入www.wrox.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链接。