书籍详情

Swift开发进阶

Swift开发进阶

作者:[美] 大卫·马克 著,于鑫睿 译

出版社:清华大学出版社

出版时间:2021-03-01

ISBN:9787302572428

定价:¥149.00

购买这本书可以去
内容简介
  《Swift开发进阶》详细阐述了与Swift语言开发相关的高级解决方案,主要包括Core Data,添加、显示与删除数据,Detail View,模型变更,自定义托管对象,关系,网络连接,地图套件,消息传递,媒体库访问和播放,内容捕获,界面生成器和故事板,单元测试和调试等内容。此外,本书还提供了丰富的示例以及代码,以帮助读者进一步理解相关方案的实现过程。 本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。
作者简介
  大卫·马克是一名长期的Mac开发者和作者,曾出版过大量专著,包括iPhone 、Mac等。戴夫喜欢游泳,且技术精良。现在,他与妻子和三个孩子居住在弗吉尼亚。
目录
第1章 欢迎回来 1
1.1 本书适合什么样的读者 1
1.2 学习本书需要哪些具体的前期知识 2
1.3 开始之前的准备工作 3
1.4 本书的知识结构 5
第2章 Core Data:定义、原理以及使用方法 9
2.1 Core Data简史 10
2.2 创建Core Data应用程序 10
2.3 核心数据概念和术语 14
2.4 数据模型 15
2.4.1 实体 19
2.4.2 获取请求 22
2.4.3 配置 22
2.5 数据模型类:NSManagedObjectModel 22
2.6 持久化存储与持久化存储协调器 25
2.7 数据模型知识回顾 27
2.8 托管对象 28
2.9 键值编码 28
2.10 管理对象上下文 29
2.11 终止保存 30
2.12 从持久性存储中加载数据 31
2.13 获取结果控制器 32
2.13.1 创建一个获取结果控制器 33
2.13.2 获取结果控制器委托方法 36
2.13.3 从获取结果控制器中检索托管对象 39
2.13.4 创建和插入新的托管对象 39
2.13.5 删除托管对象 41
2.14 本章小结 42
第3章 “超级开始”:添加、显示与删除数据 43
3.1 设置Xcode项目 44
3.1.1 添加场景 47
3.1.2 场景与页面跳转 47
3.1.3 storyboard文档大纲 48
3.2 应用程序架构 49
3.3 设计视图控制器界面 50
3.4 创建HeroListController 54
3.4.1 建立关联和插座 57
3.4.2 导航栏按钮 59
3.4.3 选项卡与用户默认值 61
3.5 数据模型设计 63
3.5.1 添加实体 64
3.5.2 编辑新实体 64
3.5.3 为Hero实体添加特性 66
3.6 声明获取结果控制器 72
3.7 实施获取结果控制器 72
3.8 获取结果控制器委托方法 74
3.9 其他后续工作 76
3.9.1 错误处理 76
3.9.2 实施Edit和“ ”(Add)按钮 76
3.9.3 为表视图数据源和委托方法编写相应代码 77
3.9.4 表视图排序 79
3.9.5 在程序启动时运行获取请求 80
3.10 运行测试 80
3.11 再接再厉 82
第4章 来自内容视图的挑战 83
4.1 视图实施方法选择 83
4.2 创建内容视图控制器 84
4.2.1 连接页面跳转 88
4.2.2 HeroDetailController类 88
4.3 内容视图的挑战 89
4.4 使用属性列表控制表结构 91
4.5 什么是属性列表 91
4.6 通过属性列表定义表视图 93
4.7 属性列表解析 97
4.8 推送内容 97
4.9 显示内容 100
4.10 编辑内容 101
4.11 内容视图中的编辑模式 101
4.12 创建一个自定义UITableViewCell子类 104
4.13 保存修改 108
4.14 专有输入界面 109
4.14.1 日期选择器SuperDBEditCell子类 109
4.14.2 日期选择器SuperDBEditCell子类的使用 111
4.14.3 实现一个选择器 114
4.15 挑战完成 117
第5章 模型变更:数据迁移和版本控制 119
5.1 关于数据模型 120
5.1.1 数据模型是被编译过的 121
5.1.2 一个数据模型可以有多个版本 121
5.1.3 创建新版本的数据模型 122
5.1.4 当前数据模型版本 123
5.1.5 数据模型版本标识符 124
5.2 迁移 125
5.2.1 轻量级迁移和标准迁移 125
5.2.2 标准迁移 125
5.3 将应用程序设置为轻量级迁移 125
5.4 开始迁移 126
第6章 自定义托管对象 129
6.1 更新数据模型 131
6.1.1 添加age特性 132
6.1.2 添加favoriteColor特性 132
6.1.3 向name特性添加最小长度 133
6.2 创建Hero类 134
6.2.1 调整Hero标题 136
6.2.2 默认值 137
6.3 添加验证 138
6.3.1 单一特性验证 138
6.3.2 多特性验证 140
6.4 添加验证反馈 142
6.5 更新内容视图 145
6.6 创建SuperDBNonEditableCell 147
6.6.1 创建一个子类 147
6.6.2 移动代码 147
6.6.3 可编辑属性 148
6.7 创建颜色表视图单元格 149
6.7.1 自定义颜色选择器 149
6.7.2 自定义颜色表视图单元格 152
6.8 清理选择器 154
6.9 最后一步 158
6.10 颜色我们走了 160
第7章 关系,获取属性以及表达式 161
7.1 应用程序扩展:超能力名称和报告 161
7.2 关系 162
7.2.1 一对一关系 164
7.2.2 对多关系 164
7.2.3 逆向关系 167
7.2.4 获取属性 168
7.2.5 在数据模型编辑器中创建关系和获取属性 169
7.2.6 删除规则 169
7.3 表达式和聚合 169
7.4 添加超能力实体 171
7.5 创建超能力关系 172
7.6 创建逆向关系 173
7.7 创建olderHeroes获取属性 173
7.8 创建youngerHeroes获取属性 175
7.9 创建sameSexHeroes获取属性 175
7.10 创建oppsiteSexHeroes获取属性 176
7.11 向Hero类添加关系和获取属性 176
7.12 更新内容视图 176
7.12.1 对配置的反思 179
7.12.2 封装与信息隐藏 183
7.12.3 数据驱动的配置 185
7.12.4 添加超能力 186
7.13 重构内容视图控制器 192
7.13.1 重命名配置类 193
7.13.2 重构内容控制器 194
7.13.3 重构Hero实例变量 195
7.13.4 再抽象一点 196
7.13.5 一个新的HeroDetailController 198
7.14 Power视图控制器 199
7.15 获取属性 202
7.16 更加精细的内容视图 206
7.17 精彩的核心数据 206
第8章 每个iCloud背后的故事 209
8.1 使用iCloud进行数据存储 209
8.2 iCloud基础知识 210
8.3 iCould备份 210
8.4 在应用程序中启用iCloud 211
8.5 键值数据存储 212
8.6 文档存储 213
8.6.1 UIDocument 213
8.6.2 带有iCloud功能的UIDocument 217
8.6.3 NSMetadataQuery 218
8.7 带有iCloud功能的Core Data 219
8.8 升级SuperDB 222
8.8.1 授权 222
8.8.2 启用iCloud并创建相关文件 222
8.8.3 更新持久化存储 224
8.8.4 更新托管对象上下文 226
8.8.5 更新DataChanged上的UI 227
8.8.6 测试数据存储 227
8.8.7 保持脚踏实地 228
第9章 使用Multipeer Connectivity框架创建的对等网络连接 229
9.1 对等网络连接 229
9.2 本章的应用程序示例 230
9.3 网络通信模型 233
9.3.1 客户端-服务器模型 233
9.3.2 对等连接模型 234
9.3.3 客户端-服务器/对等网络混合程序 235
9.4 Multipeer Connectivity对等设备 235
9.5 多点连接会话 236
9.5.1 创建会话 236
9.5.2 寻找与连接其他会话 237
9.5.3 侦听其他会话 237
9.5.4 连接对等设备 239
9.5.5 向对等设备发送数据 240
9.5.6 打包要发送的信息 241
9.5.7 从一个对等设备接收数据 242
9.5.8 关闭连接 242
9.5.9 处理一个对等连接 242
9.6 创建项目 243
9.6.1 关闭空闲计时器 243
9.6.2 设计界面 243
9.6.3 定义应用程序常量 244
9.6.4 设计游戏棋盘 246
9.6.5 创建数据包对象 249
9.6.6 建立视图控制器 251
9.6.7 实现井字棋游戏的视图控制器 253
9.7 试着运行程序 265
9.8 加油 266
第10章 地图套件 267
10.1 本章出现的示例应用程序 267
10.2 概述和术语 268
10.3 地图视图 269
10.3.1 地图类型 269
10.3.2 位置授权 270
10.3.3 用户位置 271
10.3.4 坐标区域 272
10.3.5 设置显示区域 275
10.3.6 地图视图委托 275
10.4 注释 277
10.4.1 注释对象 277
10.4.2 注释视图 278
10.4.3 添加删除注释 279
10.4.4 注释选择 279
10.4.5 制作带注释视图的地图视图 280
10.5 地理编码与反向地理编码 281
10.6 构建MapMe应用程序 282
10.6.1 构建应用程序界面 282
10.6.2 完成视图控制器界面 284
10.6.3 编写注释对象类 285
10.6.4 实现MapMe视图控制器 287
10.7 起航吧,年轻的程序员 294

第11章 消息传递:邮件、社交和iMessage 295
11.1 本章的示例应用程序 295
11.2 MessageUI框架 297
11.2.1 创建邮件撰写视图控制器 298
11.2.2 填充主题行 298
11.2.3 填充收件人 298
11.2.4 设置邮件主体 299
11.2.5 添加附件 299
11.2.6 呈现邮件撰写视图 299
11.2.7 邮件撰写视图控制器委托方法 300
11.2.8 消息撰写视图控制器 300
11.2.9 消息附件 302
11.2.10 禁用消息附件 302
11.3 社交框架 302
11.3.1 撰写视图控制器 303
11.3.2 SLRequest 304
11.4 活动视图控制器 305
11.5 构建MessageImage应用程序 306
11.5.1 构建用户界面 306
11.5.2 拍照 307
11.5.3 调用摄像头 307
11.5.4 选择消息发件人 308
11.6 发送 309
第12章 媒体库访问和播放 311
12.1 MediaPlayer框架 311
12.1.1 媒体项目 312
12.1.2 媒体项目集合 316
12.1.3 媒体查询和媒体属性谓词 317
12.1.4 媒体选择器控制器 320
12.1.5 音乐播放器控制器 322
12.2 简单的音乐播放器 327
12.2.1 构建SimplePlayer应用程序 328
12.2.2 构建用户界面 328
12.2.3 声明接口和操作 331
12.3 MPMoviePlayerController 336
12.4 MPMediaPlayer 337
12.5 AVFoundation 348
12.6 TL;DR: AVKit 350
12.7 播放视频 351
12.8 AVMediaPlayer 354
12.9 AVMediaPlayer v2 355
12.10 照片库 358
12.11 修改照片库 359
12.12 在对我讲话吗 361
12.13 注意!前方波涛汹涌 362
第13章 闪光灯、摄像头和内容捕获 363
13.1 闪光灯 363
13.2 摄像头 364
13.3 更改设置 366
13.4 选择一个摄像头 368
13.5 选择一个输出源 370
13.6 扫描条形码 374
13.7 生成条形码 377
13.8 制造声响 379
13.9 录音 380
13.10 更精彩的内容 382
第14章 界面生成器和故事板 383
14.1 storyboard视图控制器 383
14.2 页面跳转 385
14.3 控件 387
14.3.1 Inspectable特性 387
14.3.2 Designable特性 388
14.3.3 制作一个更有用的BasicControl 390
14.4 视图控制器 394
14.5 转换动画 396
14.6 后文预告 401
第15章 单元测试、调试以及Instruments工具 403
15.1 单元测试 403
15.2 调试 410
15.2.1 断点 412
15.2.2 调试导航器 413
15.2.3 调试区域 414
15.2.4 尝试调试控件 416
15.2.5 断点导航器和符号断点 419
15.2.6 条件断点 420
15.2.7 断电操作 422
15.2.8 常见问题介绍 424
15.3 性能分析工具Instruments 425
15.4 路途将尽 427
第16章 路一直都在 429
16.1 摆脱困境 429
16.2 Apple的文档 429
16.3 邮件列表 430
16.4 讨论论坛 430
16.5 相关网站 431
16.6 博客 431
16.7 相关书籍 432
16.8 该说再见了 433
猜您喜欢

读书导航