编辑推荐

Swift学习手册》讲解常用的Swift设计模式、Apple平台中应用的结构,还会说明如何把应用提交到AppStore。构建真实可用的OSX和iOS应用,动手实践Swift编程语言。

内容简介

《Swift学习手册》分为四部分,涵盖以下内容:Swift基础知识:学习Swift的面向对象特性,以及各种开发工具。OSX应用开发:规划应用,处理文档,然后构建各项功能。iOS应用开发:使用多媒体、联系人、位置、通知和iCloud构建一个功能完善的iOS记事本应用。高级应用扩展:支持AppleWatch,学习如何调试、监控和测试全部三个Swift应用。

目录

前言1
第一部分Swift基础
第1章新手入门9
11Apple开发者计划11
12使用Xcode创建第一个项目13
13开发一个简单的Swift应用26
14使用iOS模拟器30
15小结32
第2章Swift基础33
21Swift编程语言34
22Playground36

23注释38
24流程控制38
25变量和常量42
26运算符43
27类型44
28处理字符串45
29函数和闭包56
210小结63
第3章Swift面向对象应用开发64
31类和对象64
32结构体77
33模块78
34Swift标准库、Foundation、Cocoa和CocoaTouch78
35数据79
36错误处理81
37内存管理83
38Cocoa和CocoaTouch采用的设计模式84
39应用的结构88
310小结89
第二部分构建一个OSX应用
第4章构建OSX记事本应用的前期准备工作93
41设计这个OSX记事本应用93
42创建OSX应用项目97
43定义文档类型101
44添加图标106
45小结108
第5章在OSX中处理文档109
51NSDocument类109
52在文档中存储数据110
53存储文本111
54基本的UI120
55小结128
第6章用户界面和iCloud129
61更新UI129
62附件和文件扩展名的UI133
63增强附件系统154
64通过拖曳添加附件159
65iCloud166

66iCloud基础167
67小结170
第三部分构建一个iOS应用
第7章构建iOS记事本应用的前期准备工作173
71设计这个iOS应用174
72创建iOS应用项目179
73为iOS应用启用iCloud183
74定义文档类型187
75小结189
第8章处理iCloud中的文件190
81应用沙盒190
82iCloud的可用性192
83创建文档列表视图控制器192
84定义Document类204
85列出文档210
86创建文档218
87从iCloud中下载文件221
88删除文档225
89重命名文档231
810小结235
第9章在iOS中处理文档236
91添加显示笔记的视图236
92编辑和保存文档244
93小结246
第10章处理文件和文件类型247
101设计附件的界面247
102列出附件251
103处理冲突261
104创建快速查看缩略图267
105小结269
第11章图像和删除270
111添加附件270
112添加图像附件272
113查看附件277
114删除附件286
115小结293
第12章支持iOS生态系统294
121通过UIActivityController实现分享294
122Handoff297

123可搜索性301
124小结303
第13章扩展iOS应用304
131使用Spotlight索引扩展搜索305
132“今天”小组件315
133小结323
第14章多媒体、联系人、位置和通知324
141位置附件324
142音频附件338
143视频附件350
144联系人附件356
145通知360
146小结371
第15章改进这个iOS应用372
151朗读文本372
152在SFSafariViewController中打开链接374
153设置380
154撤销功能381
155图像滤镜384
156全球化应用388
157辅助功能396
158分屏多任务400
159小结401
第四部分扩展应用
第16章构建一个watchOS应用405
161为AppleWatch设计406
162设计我们的watchOS应用407
163创建watchOS扩展409
164小结441
第17章代码质量和应用分发442
171调试442
172Instruments444

173测试449
174在同一个项目中同时使用Objective-C和Swift453
175AppStore454

176小结457

前言/序言

欢迎阅读《Swift学习手册》!我们将为Apple的OSX、iOS和watchOS平台开发一个笔记应用,让你实践Swift编程语言。
Swift是一门出色的现代语言,借鉴了其他新式语言的最佳实践,而没有重新发明轮子。Swift易于编写、易于学习,极难犯错。
我们认为,学习Swift的最佳方法是使用它构建应用。不过,若想构建应用,需要趁手的框架,而Apple为我们提供了好多,例如Cocoa、CocoaTouch和WatchKit。《Swift学习手册》的书名也可以改成“通过

Swift学习Cocoa和CocoaTouch”,因为框架和语言本身同等重要。写作《Swift学习手册》时,Swift的当前版本是2.2,而且未来一片光明。
书中使用的资源
我们建议你在阅读每一章的同时自己动手编写代码。如果卡住了,或者想获取一份代码,可以访问我们的网站(http://www.secretlab.com.au/books/learning-swift)。
Swift学习手册》的目的是教你构建真实的应用,主要集中讲解代码,不是让你设计图标,我们已经为你准备好了。图标也可以从我们的网站中下载。
Swift学习手册》面向的读者和教学方式
Swift学习手册》只讲Swift,不涉及Objective-C。我们偶尔会提及后者,但是不要求你知道如何使用它。《Swift学习手册》先讲Swift的基础知识,然后分别为OSX和iOS构建一个完整的应用,在这个过程中学习Cocoa、

CocoaTouch和watchOS框架。注意,Swift是编程语言,Cocoa是开发OSX应用的框架,CocoaTouch是开发iOS应用的框架,而watchOS是开发AppleWatch应用的框架。
Swift学习手册》采用的教学方式与其他编程书不同。前面说过,我们认为学习Swift的最佳方法是使用它构建应用。我们假定你有一定的编程基础,但是不假设你曾为OSX或iOS做过开发,或者之前用过Swift

或Objective-C。我们还假设你能熟练操作OSX和iOS。
Swift学习手册》结构
Swift学习手册》将分别讨论OSX和iOS使用的Cocoa和CocoaTouch框架。在这个过程中,我们
还将说明Swift的句法和特性等。第一部分先介绍Swift编程工具和Apple开发者计划,然后介绍Swift编程语言的基础知识和Apple平台中程序的结构,以及常用的设计模式。
第1章简要介绍Apple的开发者计划,带你构建一个简单的Swift应用。第2章探讨Swift基础知识,准备使用它构建复杂的应用。第3章讨论Swift的面向对象特性,以及一个好的应用应该具有的

结构。第二部分为MacOSX构建一个简单的笔记应用。在这个过程中,我们将讨论应用的设计、
结构,说明如何处理文档,以及如何构建所有功能。第4章开始构建OSX笔记应用,准备文档模型和图标。第5章详细说明如何在OSX应用中处理文档。第6章把应用与iCloud连接起来,完成整个

应用。第三部分构建一个功能完整的iOS笔记应用,作为第二部分那个OSX应用的配备。第7章开始构建iOS笔记应用,准备与iOS应用一样的文档模型。第8章把iOS应用与iCloud连接起来。第

9章创建显示笔记的界面。第10章在iOS应用中处理附件。第11章为iOS应用添加图像支持。第12章为iOS应用添加分享和搜索功能。
第13章为iOS应用添加一个“今天”小组件。第14章为iOS应用添加位置、音频、视频和联系人附件,以及通知。第15章对iOS应用做些改进。第四部分构建一个watchOS应用,并且探讨缺陷追查

和性能调优。第16章为iOS应用添加一个watchOS应用,提供AppleWatch支持。第17章探讨调试和性能调优。
排版约定
Swift学习手册》使用了下述排版约定。
斜体(Italic)表示新术语、URL、电子邮件地址、文件名和扩展名。
等宽字体(Constant.Width)表示代码清单,在段落中出现则表示程序元素,例如变量、函数名、数据库、数据类型、环境变量、语句和关键字。
粗体等宽字体(Constant.width.bold)表示应该由用户输入的命令或其他文本。
斜体等宽字体(ConstantWidthItalic)表示应该替换成用户提供的值,或者由上下文决定的值。

这个图标表示提示或建议。
这个图标表示一般性说明。
这个图标表示警告或提醒。

使用代码示例
Swift学习手册》的补充资料(代码示例、练习、勘误等)可以从这个地址下载:http://secretlab.com.au/books/learning-swift。
Swift学习手册》的目的是帮助你完成工作。一般来说,你可以在自己的程序或者文档中使用《Swift学习手册》附带的示例代码。你无需联系我们获得使用许可,除非你要复制大量的代码。例如,使用《Swift学习手册》中的多个代码片段编

写程序就无需获得许可。但以CD-ROM的形式销售或者分发O’Reilly书中的示例代码则需要获得许可。回答问题时援引《Swift学习手册》内容以及书中示例代码,无需获得许可。在你自己的项目文档中使用《Swift学习手册》大

量的示例代码时,则需要获得许可。
我们不强制要求署名,但如果你这么做,我们深表感激。署名一般包括书名、作者、出版社和国际标准图书编号。例如:LearningSwiftbyJonathonManning,ParisButtfield-Addison,andTim

Nugent(O’Reilly).Copyright2016SecretLab,978-1-491-94074-7。
如果你觉得自身情况不在合理使用或上述允许的范围内,请通过邮件和我们联系,地址是permissions@oreilly.com。
Safari.BooksOnline
SafariBooksOnline(http://safaribooksonline.com)是应需而变的数字图书馆,它同时以图书和视频的形式出版世界顶级技术和商务作家的专业作品。
SafariBooksOnline是技术专家、软件开发人员、Web设计师、商务人士和创意人士开展调研、解决问题、学习和认证培训的第一手资料来源。
SafariBooksOnline为企业(https://www.safaribooksonline.com/enterprise/)、政府部门(https://www.safaribooksonline.com/government/)、教育机构(https://www.

safaribooksonline.com/academic-public-library/)和个人提供了多种套餐和价格(https://www.safaribooksonline.com/pricing/)。
订阅者可以在一个完全可搜索的全文数据库中访问上千种图书、培训视频和正式出版之前的书稿。这些内容由以下出版社提供:O’ReillyMedia、PrenticeHallProfessional、Addison-Wesley

Professional、MicrosoftPress、Sams、Que、PeachpitPress、FocalPress、CiscoPress、JohnWiley&Sons、Syngress、MorganKauf-mann、IBMRedbooks、Packt、AdobePress、FT

Press、Apress、Manning、NewRiders、McGraw-Hill、Jones&Bartlett、CourseTechnology等(https://www.safaribooksonline.com/our-library/)。关于SafariBooksOn-line的更多

信息,请访问我们的网站(http://www.safaribooksonline.com)。
联系方式
请把你对《Swift学习手册》的意见和疑问发给出版社:
美国:
O’ReillyMedia,Inc.
1005GravensteinHighwayNorth
Sebastopol,CA95472
中国:
北京市西城区西直门南大街2号成铭大厦C座807室(100035)
奥莱利技术咨询(北京)有限公司
这《Swift学习手册》有专属网页,你可以在那儿找到《Swift学习手册》的勘误、示例和其他信息。这个网页的地址是http://shop.oreilly.com/product/0636920045946.do。
如果你对《Swift学习手册》有一些评论或技术上的建议,请发送电子邮件到bookquestions@oreilly.com。
要了解O’Reilly图书、培训课程、会议和新闻的更多信息,请访问我们的网站,地址是http://www.oreilly.com。
我们在Facebook的地址:http://facebook.com/oreilly
请关注我们的Twitter动态:http://twitter.com/oreillymedia
我们的YouTube视频地址:http://www.youtube.com/oreillymedia

致谢
Jon要感谢双亲和诸位家庭成员给予的巨大支持。
Paris要感谢他的母亲,没有她几乎任何事情都引不起他的兴趣,更别说写一《Swift学习手册》了。
Tim要感谢双亲和家庭容忍他平淡无奇的生活。
我们三人要感谢编辑RachelRoumeliotis和BrianMacDonald,他们的技能和建议对这《Swift学习手册》的完成起了至关重要的作用。此外,撰写《Swift学习手册》的过程中,我们与O’ReillyMedia的很多人有联系,他们都

是各自领域的专家。
非常感谢TonyGray和AppleUniversityConsortium(AUC)给我们提供的极大帮助,以及这里列出的其他人。如果没有他们,我们不可能写出这《Swift学习手册》。现在,你也在写书了,Tony,祝你好运!
还要感谢NealGoldstein,是他联系我们,把我们带上了写书这条路。
感谢MacLab给予的支持(谁知道他们是谁,他们一直在看终将神化的AdmiralDolphin),感谢ChristopherLueg教授、LeonieEllis博士和塔斯马尼亚大学的其他员工,感谢他们容忍我们。向

MarkPesce“致歉”,他知道个中缘由。
此外,要感谢RexS.、NicW.、AndrewB.、JessL.和AshJ.,原因有很多。特别感谢SteveJobs,没有他就没有这《Swift学习手册》(以及很多类似的书)。
感谢技术审校,尤其是ChrisDevers和TonyGray,感谢他们细致且专业地审校。
最后,非常感谢你购买我们的书,谢谢你!如果你有什么要反馈,请联系我们。你可以发电子邮件给我们,地址是lab@secretlab.com.au;也可以在Twitter上联系@thesecretlab

(http://twitter.com/thesecretlab)。

其他推荐