新書推薦:
《
宽容是件奢侈品(人生360度·一分钟经典故事)
》
售價:HK$
44.6
《
甲骨拼合六集
》
售價:HK$
333.8
《
视觉美食家:商业摄影实战与创意解析
》
售價:HK$
132.2
《
中国经济发展的新阶段:机会与选择
》
售價:HK$
99.7
《
DK月季玫瑰百科
》
售價:HK$
210.6
《
为你想要的生活
》
售價:HK$
66.1
《
关键改变:如何实现自我蜕变
》
售價:HK$
77.3
《
超加工人群:为什么有些食物让人一吃就停不下来
》
售價:HK$
99.7
編輯推薦:
1. 本书配有免费视频教程和实用的项目开发实战教程,同时本书网站还为读者提供了交流平台,iOS专家关东升将为读者提供热心答疑和指导。
2. 本书第2版中涵盖了大量案例,详细解析了Swift核心知识点。最重要的是,加入了Swift的最新特性、最新语法和最新功能。
《图灵原创:Swift开发指南》特点:
配有同步习题、同步视频教程,并全程展现即将上线的iPhone计算器项目
分层架构设计解决Swift与Objective-C混合搭配问题
畅销书《图灵原创:Swift开发指南》作者关东升最新著作
內容簡介:
本教程通过大量案例讲解了Swift语言开发的方方面面,包含常量与变量、运算符和表达式、数据类型、数据类型转换、字符串类型、语言的元组类型、可选类型、数组、字典、控制语句、函数、闭包、类与结构体、属性、方法、下标、继承、构造器、析构器、扩展、协议等。
本书适合现有iOS开发者,其它移动平台开发者计划从事iOS开发者,对iOS开发感兴趣的读者,计划从事iOS开发工作的人,以及计算机专业大学生。本书属于基础语言类技术书,非常适合作为培训教材。
關於作者:
关东升
国内知名iOS技术作家,iOS技术顾问,高级培训讲师,移动开发专家。担任51CTO社区iOS技术顾问,精通iOS、Android和Windows Phone及HTML5等移动开发技术,擅长移动平台的应用和游戏类项目开发。曾先后主持开发大型网络游戏《神农诀》的iOS和Android客户端、国家农产品追溯系统的iPad客户端、酒店预订系统的iPhone客户端、金融系统微博的iOS和Windows Phone及Android客户端。在App Store上发布了多款游戏和应用软件。长期为中国移动研究院、云南移动、东软、方正科技、大唐电信、中石油、深圳康拓普、上海财富168、天津港务局等企事业单位授课。除本书外,还著有《iOS开发指南》《品味移动设计》《iOS网络编程与云端应用最佳实践》《iOS传感器应用开发最佳实践》《iOS多媒体编程技术最佳实践》《iPhone与iPad开发实战——iOS经典应用剖析》等畅销书。
目錄 :
第一部分 基础篇
第1章 准备开始2
1.1 本书学习路线图2
1.2 本书中的约定3
1.2.1 示例代码约定4
1.2.2 图示的约定4
1.3 Xcode开发工具6
1.3.1 Xcode安装和卸载7
1.3.2 Xcode界面10
1.4 如何使用API帮助11
1.5 本章小结14
1.6 同步练习14
第2章 第一个Swift程序15
2.1 使用Playground编写15
2.1.1 编程利器Playground15
2.1.2 编写HelloWorld程序16
2.2 代码解释20
2.3 本章小结20
2.4 同步练习20
第3章 Swift基本语法21
3.1 标识符和关键字21
3.1.1 标识符21
3.1.2 关键字22
3.2 常量和变量22
3.2.1 常量22
3.2.2 变量23
3.2.3 命名规范23
3.3 注释24
3.4 表达式25
3.5 本章小结26
3.6 同步练习26
第4章 基本运算符28
4.1 算术运算符28
4.1.1 一元运算符28
4.1.2 二元运算符29
4.1.3 算术赋值运算符30
4.2 关系运算符31
4.3 逻辑运算符33
4.4 位运算符34
4.5 其他运算符36
4.6 本章小结37
4.7 同步练习37
第5章 基本数据类型39
5.1 Swift数据类型39
5.2 整型39
5.3 浮点型41
5.4 数字表示方式41
5.4.1 进制数字表示41
5.4.2 指数表示42
5.4.3 其他表示42
5.5 数字类型之间的转换42
5.5.1 整型之间的转换42
5.5.2 整型与浮点型之间的转换43
5.6 布尔型44
5.7 元组类型44
5.8 本章小结45
5.9 同步练习45
第6章 字符和字符串47
6.1 字符47
6.1.1 Unicode编码47
6.1.2 转义符48
6.2 创建字符串49
6.3 字符串可变性49
6.4 字符串比较50
6.4.1 大小和相等比较50
6.4.2 前缀和后缀比较51
6.5 本章小结52
6.6 同步练习52
第7章 控制语句53
7.1 分支语句53
7.1.1 条件语句if53
7.1.2 多分支语句switch55
7.1.3 在switch中使用范围匹配57
7.1.4 在switch中比较元组类型58
7.2 循环语句60
7.2.1 while语句60
7.2.2 do while语句62
7.2.3 for语句62
7.2.4 for in语句63
7.3 跳转语句64
7.3.1 break语句65
7.3.2 continue语句66
7.3.3 fallthrough语句68
7.4 本章小结70
7.5 同步练习70
第8章 集合74
8.1 数组集合74
8.1.1 数组声明与初始化75
8.1.2 数组的修改76
8.1.3 数组遍历77
8.2 字典集合77
8.2.1 字典声明与初始化78
8.2.2 字典的修改79
8.2.3 字典遍历80
8.3 集合的复制81
8.3.1 字典复制81
8.3.2 数组复制83
8.4 本章小结85
8.5 同步练习85
第9章 函数87
9.1 使用函数87
9.2 传递参数88
9.2.1 使用外部参数名88
9.2.2 参数默认值89
9.2.3 可变参数89
9.2.4 参数的传递引用90
9.3 函数返回值91
9.3.1 无返回值函数91
9.3.2 多返回值函数92
9.4 函数类型92
9.4.1 作为函数返回类型使用93
9.4.2 作为参数类型使用94
9.5 函数重载95
9.6 嵌套函数96
9.7 泛型和泛型函数97
9.7.1 一个问题的思考98
9.7.2 泛型函数98
9.8 本章小结99
9.9 同步练习99
第10章 闭包103
10.1 回顾嵌套函数103
10.2 闭包的概念104
10.3 使用闭包表达式105
10.3.1 类型推断简化105
10.3.2 隐藏return关键字106
10.3.3 缩写参数名称106
10.3.4 使用闭包返回值107
10.4 使用尾随闭包107
10.5 捕获上下文中的变量和常量108
10.6 本章小结109
10.7 同步练习109
第二部分 面向对象篇
第11章 Swift语言中的面向对象特性112
11.1 面向对象概念和基本特征112
11.2 Swift中的面向对象类型112
11.3 枚举113
11.3.1 成员值113
11.3.2 原始值115
11.3.3 相关值116
11.4 结构体与类118
11.4.1 类和结构体定义118
11.4.2 再谈值类型和引用类型119
11.4.3 引用类型的比较121
11.5 类型嵌套122
11.6 可选类型与可选链123
11.6.1 可选类型123
11.6.2 可选链124
11.7 访问限定127
11.7.1 访问范围127
11.7.2 访问级别129
11.7.3 使用访问级别最佳实践130
11.8 本章小结133
11.9 同步练习133
第12章 属性与下标137
12.1 存储属性137
12.1.1 存储属性概念137
12.1.2 延迟存储属性138
12.1.3 属性观察者139
12.2 计算属性139
12.2.1 计算属性概念139
12.2.2 只读计算属性141
12.2.3 结构体和枚举中的计算属性142
12.3 属性观察者142
12.4 静态属性144
12.4.1 结构体静态属性146
12.4.2 枚举静态属性147
12.4.3 类静态属性148
12.5 使用下标148
12.5.1 下标概念149
12.5.2 示例:二维数组149
12.6 本章小结151
12.7 同步练习151
第13章 方法153
13.1 实例方法153
13.1.1 使用规范的命名154
13.1.2 结构体和枚举方法变异157
13.2 静态方法158
13.2.1 结构体中静态方法158
13.2.2 枚举中静态方法159
13.2.3 类中静态方法159
13.3 本章小结160
13.4 同步练习160
第14章 构造与析构161
14.1 构造器161
14.1.1 默认构造器161
14.1.2 构造器与存储属性初始化162
14.1.3 使用外部参数名163
14.2 构造器重载165
14.2.1 构造器重载概念165
14.2.2 值类型构造器代理166
14.2.3 引用类型构造器横向代理167
14.3 析构器168
14.4 本章小结173
14.5 同步练习173
第15章 继承175
15.1 从一个示例开始175
15.2 构造器继承176
15.2.1 构造器调用规则176
15.2.2 构造过程安全检查178
15.2.3 构造器继承180
15.3 重写182
15.3.1 属性重写182
15.3.2 方法重写185
15.3.3 下标重写186
15.3.4 使用final关键字187
15.4 类型检查与转换189
15.4.1 使用is操作符190
15.4.2 使用as操作符191
15.4.3 使用Any和AnyObject类型192
15.5 本章小结193
15.6 同步练习193
第16章 扩展和协议195
16.1 扩展195
16.1.1 声明扩展195
16.1.2 扩展计算属性196
16.1.3 扩展方法197
16.1.4 扩展构造器198
16.1.5 扩展下标200
16.2 协议201
16.2.1 声明和遵守协议202
16.2.2 协议方法202
16.2.3 协议属性205
16.2.4 把协议作为类型使用207
16.2.5 协议的继承209
16.2.6 协议的合成210
16.3 扩展中声明协议212
16.4 本章小结212
16.5 同步练习213
第17章 Swift内存管理215
17.1 Swift内存管理概述215
17.1.1 引用计数215
17.1.2 示例:Swift自动引用计数216
17.2 强引用循环218
17.3 打破强引用循环221
17.3.1 弱引用221
17.3.2 无主引用223
17.4 闭包中的强引用循环225
17.4.1 一个闭包中的强引用循环示例226
17.4.2 解决闭包强引用循环226
17.5 本章小结228
17.6 同步练习228
第三部分 过渡篇
第18章 从Objective-C到Swift232
18.1 选择语言232
18.2 Swift调用Objective-C232
18.2.1 创建Swift的iOS工程233
18.2.2 在Swift工程中添加Objective-C类234
18.2.3 调用代码235
18.3 Objective-C调用Swift236
18.3.1 创建Objective-C的iOS工程236
18.3.2 在Objective-C工程中添加Swift类238
18.3.3 调用代码240
18.4 本章小结241
18.5 同步练习241
第19章 使用Foundation框架243
19.1 数字类NSNumber243
19.1.1 获得NSNumber实例243
19.1.2 NSNumber对象的比较246
19.2 字符串类247
19.2.1 NSString类247
19.2.2 NSMutableString类250
19.2.3 NSString与String之间的关系251
19.3 数组类252
19.3.1 NSArray类252
19.3.2 NSMutableArray类253
19.3.3 NSArray与Array之间的关系254
19.4 字典类255
19.4.1 NSDictionary类255
19.4.2 NSMutableDictionary类256
19.4.3 NSDictionary与Dictionary之间的关系257
19.5 本章小结258
19.6 同步练习258
第四部分 实战篇
第20章 iOS开发基础260
20.1 iOS介绍260
20.2 第一个iOS应用HelloWorld261
20.2.1 创建工程261
20.2.2 Xcode中的iOS工程模板268
20.2.3 程序剖析269
20.3 iOS API简介271
20.4 本章小结272
20.5 同步练习272
第21章 项目实战——基于分层架构的多版本iPhone计算器273
21.1 应用分析与设计273
21.1.1 应用概述273
21.1.2 需求分析273
21.1.3 原型设计274
21.1.4 分层架构设计275
21.1.5 应用设计276
21.2 创建工程277
21.3 业务逻辑层开发279
21.3.1 创建CalcLogic.swift文件279
21.3.2 枚举类型Operator280
21.3.3 CalcLogic类中属性281
21.3.4 CalcLogic类中构造器和析构器281
21.3.5 CalcLogic类中更新主标签方法282
21.3.6 CalcLogic类中判断是否包含小数点方法283
21.3.7 CalcLogic类中计算方法283
21.3.8 CalcLogic类中清除方法284
21.4 表示层开发285
21.4.1 添加图片资源285
21.4.2 改变设计界面大小287
21.4.3 添加计算器背景287
21.4.4 在设计界面中添加主标签289
21.4.5 在设计界面中添加按钮291
21.4.6 控件的输出口和动作295
21.4.7 视图控制器299
21.5 Objective-C版本的计算器300
21.5.1 Xcode工程文件结构比较300
21.5.2 表示层比较301
21.5.3 业务逻辑层比较302
21.6 Swift调用Objective-C实现的计算器305
21.6.1 在Swift工程中添加Objective-C类306
21.6.2 调用代码308
21.7 Objective-C调用Swift实现的计算器309
21.7.1 在Objective-C工程中添加Swift类309
21.7.2 调用代码310
21.8 本章小结313
21.9 同步练习313
內容試閱 :
前言
2014年8月1日国内第一本Swift图书——《Swift开发指南》正式上市了,这是我们智捷iOS课堂与图灵教育合作的又一本iOS图书,之前合作的《iOS开发指南:从零基础到App Store上架》承蒙广大读者的厚爱,获得了不错的销售业绩。
由于《Swift开发指南》这本书是基于Xcode 6 beta 4版本编写的, Xcode 6最终版本在Swift语法方面、Xcode的操作界面和工程构建方面都有一些变化,因此我们及时编写了《Swift开发指南》的修订版本。
主要修订的内容包括:Unicode编码表现形式的变化(参见6.1.1节),描述范围的半闭区间表现形式的变化(参见7.1.3节),数组元素追加(参见8.3.2节),访问限定新特性(参见11.7节),析构器示例修改(参见14.3节),构造器继承(参见15.2.3节),Mac OS X工程修改为iOS工程(参见18.2.1节和18.3.1节)和项目实战中iPhone计算器修改(参见21.3节)。
内容和组织结构
本书是我们团队编写的iOS系列图书之一,目的是使从事iOS开发的广大读者通过本书的学习掌握苹果Swift语言,对于原来有Objective-C开发经验的人,能够快速转型到Swift上来开发iOS应用。全书共分为4个部分。
第一部分为基础篇,共10章内容,介绍了Swift的一些基础知识。
第1章介绍了Swift的开发背景以及本书约定。
第2章介绍了如何使用Xcode的Playground编写和运行Swift程序代码,讲述了Swift程序结构以及Playground工具的使用。
第3章介绍了Swift一些基本语法,其中包括标识符和关键字、常量、变量、表达式和注释等内容。
第4章介绍了Swift一些基本运算符,这些运算符包括算术运算符、关系运算符、逻辑运算符、位运算符和其他运算符等。
第5章介绍了Swift一些数据类型,例如UInt8、Int8和Double等,此外还有元组(tuple)等类型。
第6章介绍了Swift中的字符和字符串,以及字符串可变性和字符串的比较等内容。
第7章介绍了Swift语言的控制语句,其中包括分支语句(if和switch)、循环语句(while、do while、for和for in)和跳转语句(break、continue、fallthrough和return)等。
第8章介绍了Swift中提供的两种数据结构的实现:数组和字典。
第9章介绍了Swift中的函数。Swift中的函数可以独立存在,即全局函数;也可以在别的函数中存在,即函数嵌套;也可以在类、结构体和枚举中存在,即方法。
第10章介绍了Swift语言中的闭包,其中包括了闭包的概念、闭包表达式、尾随闭包和捕获值等内容。
第二部分为面向对象篇,共7章,介绍了Swift语言面向对象的相关知识。
第11章首先介绍了现代计算机语言中面向对象的基本特性,然后介绍了Swift语言中面向对象的基本特性,主要包括枚举、结构体和类基本概念及其定义。最后还介绍了Swift面向对象类型嵌套、可选类型和可选链等基本概念。
第12章介绍了Swift中属性和下标的基本概念及其使用规律,主要包括存储属性、计算属性、静态属性和属性观察者等重要的属性概念。此外,还介绍了下标的概念及使用。
第13章介绍了Swift语言的方法概念、方法的定义以及方法的调用等内容,并讲述了使用实例方法和静态方法声明和调用。
第14章介绍了Swift语言的对象类型的构造过程和析构过程,还介绍了构造器和析构器的使用方法。
第15章讨论了Swift语言的继承性,介绍了Swift中继承只能发生在类类型上,而枚举和结构体不能发生继承,还介绍了Swift中子类继承父类的方法、属性、下标等特征过程,以及如何重写父类的方法、属性、下标等特征。
第16章介绍了Swift中扩展和协议的基本概念及其重要性。具体讲述了如何扩展属性、扩展方法、扩展构造器和扩展下标。在协议部分,介绍了协议如何规定方法和属性,如何把协议当作一种类型使用,以及协议的继承和合成机制。
第17章介绍了Swift中的内存管理机制,讲述了ARC内存管理的原理,以及如何解决对象间强引用循环问题和闭包与引用对象之间强引用循环问题。
第三部分为过渡篇,共两章,主要介绍了如何从Objective-C过渡到Swift,以及它们之间的互相调用问题。
第18章介绍了如何从Objective-C过渡到Swift,再从Swift调用Objective-C。
第19章介绍了Foundation框架,讲解了如何通过Swift语言使用Foundation框架,还详细介绍了Foundation框架中的数字、字符串、数组、字典等。
第四部分为实战篇,共两章,介绍了iOS应用iPhone计算器的开发过程。
第20章介绍了iOS开发的一些基础知识,包括开发环境Xcode、iOS SDK和iOS API等内容。通过一个基于iPhone的HelloWorld实例项目,介绍iOS应用的运行基本原理。
第21章介绍了iOS应用开发的一般流程,讲述了Objective-C语言与Swift语言混合搭配和调用以及分层架构设计的重要性,并且使用4个(纯Swift、纯Objective-C、Swift调用Objective-C和Objective-C调用Swift)版本实现了iPhone计算器应用。
本书的重点是介绍Swift语言,只是在本书的最后介绍了一些iOS开发的基础知识。有关iOS的更多知识,请大家关注我们智捷iOS课堂的相关图书。
本书网站
为了更好地为广大读者提供服务,我们专门为本书建立了一个服务平台,网址是http:51work6. comswift.php,大家可以查看相关出版信息,并对书中内容发表评论,提出宝贵意见。
源代码
书中包括了150多个完整的案例项目源代码,大家可以到本书网站下载,或者到图灵社区本书主页(www.iTuring.cnbook1517)免费注册下载。
同步练习
为了帮助读者消化吸收本书介绍的知识,我们在每一章后面都安排了数量不等的同步练习题。为了能够让广大读者主动思考,同步练习题的参考答案并没有放在书中,而是放在了本书网站上,我们为此专门设立了一个讨论频道。大家也可以到图灵社区本书主页下载和参考。
勘误与支持
我们在本书网站建立了一个勘误专区,可以及时地把书中的问题、失误和纠正反馈给广大读者。如果你发现了任何问题,均可以在网上留言,也可以发送电子邮件到eorient@sina.com,我们会在第一时间回复你。此外,你也可以通过新浪微博与我们联系,我的微博为@tony_关东升。
致谢
在此感谢图灵的编辑王军花和张霞给我们提供的宝贵意见,感谢智捷iOS课堂团队的贾云龙参与内容的讨论和审核,感谢赵大羽老师手绘了书中全部草图,并从专业的角度修改书中图片,力求更加真实完美地奉献给广大读者。此外,还要感谢我的家人容忍我的忙碌,以及对我的关心和照顾,使我能抽出这么多时间,投入全部精力专心编写此书。
由于时间仓促,书中难免存在不妥之处,请读者原谅。
关东升
2014年10月于北京