iOS 6开发进阶与实战.pdf

iOS 6开发进阶与实战.pdf
 

书籍描述

目录
目 录

第1章 踏上新征程 1
1.1 本书讲什么 1
1.2 你需要具备的基础 2
1.3 启程前的准备 2
1.4 本书主要内容 4

第2章 Core Data剖析 6
2.1 Core Data简史 6
2.2 创建Core Data应用程序 7
2.3 Core Data概念和术语 11
2.4 数据模型 11
2.5 Managed Object 21
2.6 键-值(Key-Value)编程 21
2.7 Managed Object上下文 22
2.8 小结 33

第3章 完美的开端:添加、显示和删除数据 34
3.1 建立Xcode项目 35
3.1.1 添加场景 39
3.1.2 场景和导引线 40
3.1.3 Storyboard文档大纲 40
3.2 应用程序架构 41
3.3 设计视图控制器界面 42
3.4 创建HeroListController 45
3.4.1 创建Connection和Outlets 47
3.4.2 导航栏按钮 49
3.4.3 标签栏User Defaults 51
3.5 设计数据模型 53
3.5.1 添加一个实体 53
3.5.2 编辑新实体 53
3.5.3 为Hero实体添加属性 55
3.6 声明Fetched Results Controller 59
3.7 实现Fetched Results Controller 60
3.8 Fetched Results Controller的Delegate方法 61
3.9 一切就绪 63
3.9.1 错误处理 63
3.9.2 实现Edit和Add 63
3.9.3 为表格视图数据源和Delegate编写代码 64
3.9.4 表格视图排序 65
3.9.5 运行时载入Fetch Request 66
3.10 跑起来吧 66
3.11 完成,但还要继续 67

第4章 隐藏在详情视图中的“怪兽” 68
4.1 视图实现方案选择 68
4.2 创建详情视图控制器 70
4.2.1 接通导引线 72
4.2.2 HeroDetailController 73
4.3 详情视图中的挑战 74
4.4 使用Property列表控制表格结构 75
4.5 使用Property列表搭建表格结构模型 76
4.6 通过Property列表定义表格视图 77
4.7 解析Property列表 80
4.8 显示详情 82
4.9 编辑详情 84
4.10 详情视图的编辑模式 84
4.11 创建自定义UITableViewCell子类 86
4.12 保存修改 89
4.13 专门的输入视图 90
4.13.1 DatePicker SuperDBEditCell子类 90
4.13.2 使用DatePicker SuperDBEditCell子类 92
4.13.3 实现一个选择器 94
4.14 “怪兽”的终结 97

第5章 为变化做准备:迁移和版本控制 98
5.1 关于数据模型 99
5.1.1 数据模型会被编译 99
5.1.2 数据模型可以拥有多个版本 100
5.1.3 创建新版数据模型 101
5.1.4 当前数据模型版本 102
5.1.5 数据模型版本标识符 103
5.2 迁移 103
5.2.1 轻量VS标准 103
5.2.2 标准迁移 104
5.3 为轻量迁移设置应用 104
5.4 让我们迁移吧 105

第6章 自定义管理对象 106
6.1 更新数据模型 108
6.1.1 添加Age属性 109
6.1.2 添加“最喜爱颜色”属性 109
6.1.3 为name属性指定最小长度 110
6.2 创建Hero类 111
6.2.1 修改Hero的Header 113
6.2.2 设置默认值 113
6.3 校验 114
6.3.1 单属性校验 115
6.3.2 nil vs. NULL 116
6.3.3 多属性校验 117
6.4 虚拟Accessor 118
6.5 添加校验反馈 118
6.6 更新详情视图 120
6.7 重构SuperDBEditCell 122
6.7.1 Xcode重构选项 122
6.7.2 搬移代码 124
6.7.3 可编辑Property 126
6.8 创建Color表格视图单元格 127
6.8.1 自定义颜色编辑器 127
6.8.2 自定义Color表格视图单元格 129
6.9 清除选择器 132
6.10 还有一件事 135
6.11 前路更多彩 138

第7章 关系、属性获取和表达式 139
7.1 扩展你的应用程序:“超能力”和“英雄榜” 139
7.2 关系 141
7.2.1 对一关系 142
7.2.2 对多关系 142
7.2.3 逆关系 144
7.2.4 Fetched Properties 145
7.2.5 在数据模型编辑器中创建关系和Fetched Properties 145
7.2.6 删除规则 146
7.3 表达式和融合 146
7.4 添加“超能力”实体 147
7.5 创建Power关系 148
7.6 创建逆关系 149
7.7 创建olderHeros Fetched Property 149
7.8 创建youngerHeros Fetched Property 151
7.9 创建sameSexHeroes Fetched Property 151
7.10 创建oppositeSexHeroes Fetched Property 151
7.11 向Hero类添加关系和Fetched Properties 152
7.12 修改详情视图 152
7.12.1 重新思考配置 154
7.12.2 封装和信息隐藏 157
7.12.3 数据驱动配置 159
7.12.4 添加“超能力” 160
7.13 重构详情视图控制器 165
7.13.1 重命名Configuration类 165
7.13.2 重构详情控制器 167
7.13.3 重构Hero实例变量 167
7.13.4 再抽象一点 167
7.13.5 新的HeroDetailController 169
7.14 “超能力”视图控制器 171
7.15 Fetch Properties 174
7.16 和Core说再见 177

第8章 在云端 178
8.1 使用iCloud进行数据存储 178
8.2 iCloud基础 178
8.3 iCloud Backup 179
8.4 在应用程序中启用iCloud 180
8.5 键-值数据存储 180
8.6 文档存储 181
8.6.1 UIDocument 181
8.6.2 支持iCloud的UIDocument 185
8.6.3 NSMetadataQuery 185
8.7 支持iCloud的Core Data 187
8.8 升级SuperDB 189
8.8.1 Entitlements 189
8.8.2 创建启用iCloud的Provisioning Profile 190
8.8.3 修改Persistent Store 198
8.8.4 修改Managed Object上下文 200
8.8.5 收到DataChanged通知时更新UI 201
8.8.6 测试数据存储 202
8.8.7 “脚踏实地” 202

第9章 使用Game Kit进行蓝牙点对点通信 203
9.1 Game Center 203
9.2 点对点连接 204
9.3 In Game Voice 205
9.4 本章的应用程序 205
9.5 网络通信模型 208
9.5.1 客户端-服务器模型 208
9.5.2 点对点模型 209
9.5.3 客户端-服务器与点对点混合 209
9.6 Game Kit中的Session 210
9.6.1 创建Session 210
9.6.2 查找并连接到其他Session 211
9.6.3 监听其他的Session 211
9.6.4 向连接点发送数据 212
9.6.5 信息打包发送 213
9.6.6 从连接点接收数据 213
9.6.7 关闭连接 214
9.7 Peer Picker 214
9.7.1 创建Peer Picker 214
9.7.2 处理连接 215
9.7.3 创建Session 215
9.8 创建项目 216
9.8.1 关闭待机计时器 216
9.8.2 导入Game Kit框架 216
9.8.3 设计界面 217
9.8.4 定义应用程序常量 217
9.8.5 设计棋盘 219
9.8.6 创建数据包对象 221
9.8.7 搭建视图控制器头 223
9.9 内测 234
9.10 游戏开始 235

第10章 Map Kit 236
10.1 本章的应用程序 236
10.2 概览和术语 237
10.3 地图视图 238
10.3.1 地图类型 238
10.3.2 用户所在位置 239
10.3.3 坐标区域 239
10.3.4 设定显示区域 241
10.3.5 地图视图Deleate 241
10.4 标注 243
10.4.1 标注对象 243
10.4.2 标注视图 244
10.4.3 添加和移除标注 244
10.4.4 选中标注 244
10.4.5 提供带有标注视图的地图视图 245
10.5 地理编码和反向地理编码 246
10.6 搭建MapMe应用程序 247
10.6.1 链接Map Kit和Core Location框架 247
10.6.2 构建界面 248
10.6.3 实现视图控制器接口 249
10.6.4 实现标注对象类 249
10.6.5 实现MapMe的ViewController 251
10.7 升级啦,年轻人 256

第11章 消息:邮件、短信和社交媒体 257
11.1 本章的应用程序 257
11.2 MessageUI框架 259
11.2.1 创建邮件编写视图控制器 260
11.2.2 填写标题行 260
11.2.3 填写收件人 260
11.2.4 设置邮件正文 261
11.2.5 添加附件 261
11.2.6 显示邮件编写视图 261
11.2.7 邮件编写视图控制器的Delegate方法 261
11.2.8 消息编写视图控制器 262
11.3 Social框架 263
11.3.1 SLComposeViewController 263
11.3.2 SLRequest 264
11.4 活动视图控制器 265
11.5 构建MessageImage应用程序 266
11.5.1 构建用户界面 266
11.5.2 拍照 266
11.5.3 调用照相机 267
11.5.4 选择消息发送器 267
11.6 寄往:下一章 268

第12章 媒体库访问和播放 269
12.1 MediaPlayer框架 269
12.1.1 媒体项 270
12.1.2 媒体项集合 274
12.1.3 媒体查询和媒体属性Predicate 275
12.1.4 媒体选择控制器 277
12.1.5 音乐播放控制器 279
12.2 简单的音乐播放器 283
12.2.1 构建SimplePlayer应用程序 283
12.2.2 构造用户界面 284
12.2.3 声明Outlet和Action 286
12.3 MPMoviePlayerController 291
12.4 MPMediaPlayer 292
12.5 AVFoundation 302
12.6 AVMediaPlayer 303
12.7 小心!前方有洪水 327

第13章 加把锁:iOS安全 328
13.1 安全性考量 328
13.2 安全性技术 329
13.2.1 加密 329
13.2.2 散列 329
13.2.3 证书和签名 330
13.2.4 身份 330
13.3 iOS安全性 330
13.3.1 随机Keychain 331
13.3.2 证书、密钥和受信服务 335
13.4 Keychain Viewer 336
13.4.1 创建Certificate Authority 336
13.4.2 创建Keychain应用 340
13.5 安全不打烊 361

第14章 保持界面响应 362
14.1 探索并发问题 363
14.2 创建Stalled应用程序 364
14.2.1 设计界面 364
14.2.2 实现Stalled视图控制器 364
14.3 Timer 367
14.3.1 创建Timer 367
14.3.2 停止Timer 368
14.3.3 Timer的局限性 368
14.4 使用Timer修改Stalled应用程序 368
14.4.1 创建Batch对象 368
14.4.2 修改nib 370
14.4.3 修改视图控制器头文件 370
14.4.4 修改视图控制器的实现文件 371
14.5 操作队列和并发 373
14.5.1 线程 374
14.5.2 操作 379
14.5.3 操作队列 381
14.6 使用操作队列优化Stalled应用程序 382
14.6.1 创建SquareRootApplication 383
14.6.2 自定义ProgressCell 386
14.6.3 调整用户界面 386
14.6.4 修改ViewController.h 387
14.6.5 修改ViewController.m 387
14.7 排队站好 392

第15章 单元测试、调试和相关工具 393
15.1 单元测试 393
15.2 调试 401
15.2.1 断点 402
15.2.2 Debug Navigator 404
15.2.3 Debug Area 405
15.2.4 尝试Debug Control 406
15.2.5 Breakpoint Navigator和Symbolic断点 409
15.2.6 条件断点 409
15.2.7 断点行为 411
15.2.8 静态分析 413
15.2.9 有关调试的补充 413
15.3 使用Instruments进行性能分析 414
15.4 胜利的终点线 416

第16章 路在脚下 417
16.1 逃离困境 417
16.2 苹果提供的文档 418
16.3 邮件列表 418
16.4 论坛 418
16.5 网站 418
16.6 博客 419
16.7 如果一切都失败了…… 419
16.8 再见 419

内容简介
  《iOS 6开发进阶与实战》从Core Data、iCloud、Game Kit、Map Kit、消息、媒体以及安全性等诸多方面,对iOS平台开发中的进阶内容进行了详细的讲解。《iOS 6开发进阶与实战》共16章,其中第2章至第7章详细而深入地讨论了有关Core Data的内容;第8至第13章分别讲解了云服务技术iCloud、Game Kit中的蓝牙连接、LBS服务Map Kit、媒体库与多媒体播放、消息传送与社交媒体,以及应用程序安全性;第14、15章介绍了并发响应、多线程与高级调试技术;最后,第16章为读者提供了一些有用的外部资源。
  《iOS 6开发进阶与实战》所涉及的内容是开发具有一定深度和价值的iOS应用程序所必须了解和掌握的,所以,本书不仅适合对iOS开发有一定基础的读者,更是即将开发产品级应用的开发人员所必须阅读的书籍。另外,《iOS 6开发进阶与实战》也可供领域内产品经理、项目经理等相关职位人士参考。

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多