第1 章 搭建Swift 开发环境 … 1
1.1 Swift 介绍 ... 1
1.1.1 Swift 的前世今生 ...... 1
1.1.2 Swift 与Objective - C … 2
1.2 Mac OS X 操作系统 ........ 3
1.3 Xcode 简介和获取方法 .. 4
1.3.1 Xcode 简介 ........ 4
1.3.2 Playground 简介 4
1.3.3 Xcode 的获取方法 ..... 5
1.4 iPhone SDK 简介.. … 6
第2 章 Swift 基础语法 ........ 7
2.1 基础知识.. … 7
2.1.1 命名规则… 7
2.1.2 常量与变量 ....... 8
2.1.3 类型推测 .. 9
2.1.4 注释 . … 9
2.1.5 输出常量和变量 ...... 10
2.2 基本数据类型 ..... 11
2.2.1 整数 ........ 11
2.2.2 浮点数 .... 11
2.2.3 布尔类型 11
2.2.4 元组类型 12
2.2.5 可选型 .... 13
2.3 基本运算符 15
2.3.1 赋值运算符 ..... 15
2.3.2 数值运算 … 15
2.3.3 自增和自减运算 ...... 16
2.3.4 复合赋值 … 16
2.3.5 比较运算 … 16
2.3.6 三元运算符 ..... 16
2.3.7 逻辑运算符 ..... 17
2.3.8 范围 ........ 17
2.3.9 括号优先级 ..... 18
2.4 字符串与字符 ..... 18
2.5 集合类型... 22
2.5.1 数组 ........ 22
2.5.2 集合 ........ 25
2.5.3 字典 ........ 26
2.6 控制流 ...... 27
2.6.1 for 循环 .. … 27
2.6.2 while 循环 ....... 28
2.6.3 if 判断语句 ...... 29
2.6.4 switch 开关语句 ....... 29
2.7 函数 . … 31
2.8 闭包 . … 34
2.9 Swift 三杰——类、结构体、枚举 ....... 37
2.9.1 Swift 三杰简介 ........ 37
2.9.2 值引用与类型引用 .. 38
2.9.3 类 .. 38
2.9.4 结构体 .... 39
2.9.5 枚举 ........ 40
2.10 属性 … 41
2.10.1 存储属性 ....... 41
2.10.2 计算属性 ....... 42
2.10.3 属性观察器 ... 44
2.10.4 类型属性 ....... 45
2.11 方法 . …46
2.12 下标 …. 49
2.13 继承 . …51
2.14 构造与析构 …53
2.14.1 构造器 .. 54
2.14.2 析构器 .. 57
2.15 类型检查与类型转换 .. 58
2.15.1 类型检查 ....... 59
2.15.2 类型转换 ....... 60
2.16 类型嵌套... 61
2.17 扩展 . ..62
2.17.1 扩展计算属性 ........ 62
2.17.2 扩展构造器 ... 63
2.17.3 扩展方法 ....... 63
2.17.4 扩展下标 ....... 64
2.18 协议 ........ 64
2.18.1 声明协议 ....... 64
2.18.2 遵守协议 ....... 66
2.18.3 实现协议 ....... 66
2.19 泛型 … 66
2.20 断言 . …67
第3 章 Swift 进阶语法 .. 69
3.1 再谈可选型 69
3.1.1 可选型 .... 69
3.1.2 为什么要用可选型 .. 70
3.1.3 解包可选型 ..... 71
3.1.4 可选绑定 …72
3.1.5 可选链 .... 73
3.2 AnyObject . ….74
3.2.1 AnyObject 简介 ........ 74
3.2.2 AnyObject 的使用 .... 74
3.3 几个数组相关的实用方法 ... 76
3.3.1 filter 方法 ........ 76
3.3.2 map 方法 …..76
3.3.3 reduce 方法 ..... 78
3.3.4 sort 方法 . ….78
3.3.5 contains 方法 ... 78
3.3.6 find 方法 . …79
3.4 Objective - C 兼容性 ... 79
3.5 ARC 自动引用计数 .... 80
3.5.1 ARC 原理 ........ 80
3.5.2 循环强引用 ..... 82
3.5.3 弱引用与无主引用 …. 83
3.6 带下标的遍历 ..... 84
3.6.1 C 语言风格的for 循环 ..... 85
3.6.2 快速遍历 …85
3.6.3 enumerateObjectsUsingBlock .... 85
3.6.4 enumerate ........ 85
3.7 方法参数的语法甜头 .. 86
3.7.1 可变参数 ….86
3.7.2 柯里化 .... 86
3.8 闭包的“延迟调用”特性 ... 88
3.9 Swift 2.0 新特性详解 .. 90
3.9.1 println 简化为print .. 90
3.9.2 do-while 更名为repeat-while .... 91
3.9.3 where 关键字 .. 91
3.9.4 if-case 结构 ..... 92
3.9.5 guard 关键字 ... 92
3.9.6 错误处理 ….93
3.9.7 LLVM 与泛型特化 .. 96
3.9.8 Protocol Extensions .. 97
3.9.9 API 的可用性检查 ... 98
3.9.10 String 与NSString 言归于好 ... 99
3.9.11 总结 .... 100
第4 章 iOS 开发中的MVC 模式 ... 101
4.1 iOS 系统初探 ... 101
4.1.1 核心OS(Core OS)层 . …102
4.1.2 核心服务(Core Services)层 ….102
4.1.3 媒体(Media)层 .. 103
4.1.4 Cocoa Touch 层 ...... 103
4.2 MVC 模式 ........ 103
4.2.1 MVC 简介 ..... 103
4.2.2 iOS 中的MVC ....... 103
4.3 新建一个Swift 工程 . 106
4.4 认识Interface Builder ........ 109
4.5 构建计算器界面 ........ 112
4.5.1 使用对象库中的对象 ..... 113
4.5.2 使用检查器设置对象 ..... 114
4.5.3 尝试运行程序 ........ 115
4.5.4 添加约束 ....... 117
4.5.5 关联代码 ....... 120
4.5.6 完善按键 ....... 125
4.6 实现计算器逻辑 ........ 126
4.6.1 补全键盘 ....... 127
4.6.2 给键盘添加约束 .... 128
4.6.3 实现数字显示功能 131
4.6.4 实现运算逻辑 . ….133
4.7 修改计算器为MVC 模式 .. 135
4.8 NSNotification .. ..137
4.8.1 NSNotification 简介 ........ 137
4.8.2 addObserver 方法 ... 138
4.8.3 addObserverForName 方法 ...... 141
4.8.4 postNotification 方法 ...... 142
第5 章 掌控UIKit ....... 143
5.1 本地化 .... 143
5.2 视图(View) ….. 145
5.3 生命周期. 149
5.3.1 APP 的生命周期 .... 149
5.3.2 控制器的生命周期 150
5.4 Button(按钮) …..151
5.4.1 按钮属性检查器 .... 152
5.4.2 按钮的代码实现 .... 153
5.4.3 为按钮添加事件 .... 155
5.5 Label(标签) . …..156
5.5.1 Label 的属性检查器 ....... 157
5.5.2 Label 的代码实现 .. 158
5.6 TextField(文本框) ……159
5.6.1 Text Field 的属性检查器 ……160
5.6.2 Text Field 的代码实现 .... 161
5.6.3 键盘 ...... 162
5.7 Switch(开关) ........ 163
5.8 Segmented Control(分段控件) ........ 165
5.8.1 Segmented Control 的属性检查器 ... 166
5.8.2 Segmented Control 的代码实现 ....... 166
5.8.3 “按钮”还是“分段” . …..168
5.9 Slider(滑块) …… 169
5.9.1 Slider 的属性检查器 ....... 169
5.9.2 Slider 的代码实现 ….. 170
5.10 ProgressView&ActivityIndicatorView . 171
5.10.1 多线程入门 . 171
5.10.2 ProgressView(进度条) ...... 173
5.10.3 ActivityIndicatorView(环形进度条) .. 175
5.11 Stepper(步进器) ... 177
5.11.1 Stepper 的属性检查器 .. 178
5.11.2 Stepper 的代码实现 ...... 178
5.12 ImageView(图像控件) .. 179
5.12.1 UIImageView&UIImage ........ 180
5.12.2 UIImageView 的属性检查器 …….182
5.12.3 UIImageView 的代码实现 .... 182
5.13 PickerView&DatePicker ..... 186
5.13.1 PickerView(选择器)简介 …….. 186
5.13.2 使用delegate 和dataSource .. 187
5.13.3 PickerView 的代码实现 ........ 189
5.13.4 DatePicker(日期选择器)的属性检查器 ...... 192
5.13.5 DatePicker 的代码实现 …….194
5.13.6 浅谈“Delegate pattern”委托模式 ........ 194
5.14 AlertView&ActionSheet ..... 195
5.14.1 AlertView(提醒框) ……. 195
5.14.2 ActionSheet(操作表) ........ 198
5.14.3 更好的选择:UIAlertController .... 200
5.15 多重MVC 及Segue(过渡) .... 204
5.15.1 多重MVC 与Segue 简介 ..... 204
5.15.2 NavigationController(导航控制器) .... 207
5.15.3 Segue(过渡) .... 214
5.15.4 SplitViewController(分屏控制器) ...... 223
5.15.5 TabBarController(选项卡控制器) ...... 225
5.15.6 PageViewController(页面控制器) ...... 232
5.16 Toolbar(工具栏) ... 239
5.17 ScrollView(滚动视图) .. …242
5.17.1 ScrollView 简介 ... 242
5.17.2 CGFloat、CGPoint、CGSize ……242
5.17.3 视图的坐标系统 .. 242
5.17.4 ScrollView 实战 ... 243
5.18 TableViewController(表视图控制器) ...... 246
5.18.1 UITableView 简介 ........ 246
5.18.2 UITableViewCell 简介 ….. 249
5.18.3 TabelView 与cell 的交互 ...... 250
5.19 SearchBar(搜索框) ........ 255
5.19.1 SearchBar 的属性检查器 ....... 255
5.19.2 实时显示搜索结果的SearchBar .... 257
5.20 iOS 与Web ....... 260
5.20.1 UIWebView ……. 260
5.20.2 WKWebView ....... 263
5.20.3 SFSafariViewController ……264
5.21 AutoLayout&StackView ..... 266
5.21.1 AutoLayout(自动布局) ..... 266
5.21.2 UIStackView(堆栈视图) ... 276
第6 章 iOS 开发揭秘 ……. 280
6.1 Gesture(手势) ....... 280
6.2 KVC 与API 设计 ...... 285
6.3 访问短信API 与电话API . …..289
6.3.1 使用URL 访问短信API 与电话API ....... 289
6.3.2 MessageUI ..... 290
6.4 访问相册API 与相机API …… 292
6.5 快速分享API ... 295
6.6 地图与定位API ........ 300
6.7 网络通信. ….310
· · · · · · (
收起)