第Ⅰ部分 开发高级UI 3
第1章 创建Personal Library 3
1.1 创建Personal Library 4
1.1.1 项目基础知识 4
1.1.2 启动新项目 5
1.1.3 配置项目 6
1.1.4 定义常量 8
1.1.5 使用配置文件 8
1.1.6 导入头文件 10
1.2 注册——登录 11
1.2.1 创建注册逻辑 12
1.2.2 初始化数据 15
1.2.3 初始化应用的默认设置 15
1.2.4 创建登录逻辑 16
1.2.5 保护密码的安全 19
1.2.6 在keychain中存储密码 20
1.3 崩溃管理 21
1.3.1 理解崩溃 21
1.3.2 实现崩溃处理程序 22
1.4 本章小结 28
第2章 Tableview进阶指南 31
2.1 理解UITableView 31
2.1.1 datasource和delegate 32
2.1.2 滚动 36
2.2 构建聊天视图控制器 39
2.2.1 构建datasource 40
2.2.2 构建聊天数据对象 40
2.2.3 构建定制的UITableView控件 43
2.2.4 灵活的单元格高度 47
2.2.5 开发定制的单元格 47
2.2.6 创建聊天用户对象 51
2.2.7 融会贯通 52
2.3 UITableView的下拉功能 58
2.3.1 实现UISearchbar 68
2.3.2 添加字母表索引 73
2.4 本章小结 78
第3章 Map Kit框架 79
3.1 模拟iOS设备的位置移动 80
3.1.1 为何需要一个GPS模拟器 80
3.1.2 创建模拟器 80
3.1.3 使用Google Maps创建GPS路线文件 84
3.1.4 实现YDLocation-Simulator类 88
3.2 使用标记 90
3.2.1 创建定制的标记 91
3.2.2 响应标记的批注 95
3.2.3 标记群集 101
3.3 本章小结 119
第4章 Action View和Alert概述 121
4.1 请求用户输入 121
4.2 使用多个选项创建UIActionSheet 122
4.3 呈现UIActionSheet 126
4.3.1 使用showInView方法来呈现 126
4.3.2 使用showFromTabBar方法来呈现 126
4.3.3 使用showFromBarButtonItem方法来呈现 129
4.3.4 使用showFromRect方法来呈现 130
4.3.5 使用showFromToolbar方法来呈现 132
4.3.6 用户输入的响应 134
4.3.7 处理用户选项 134
4.3.8 扩展UIAlertView 137
4.3.9 在UIAlertView上添加UITextField 137
4.4 本章小结 141
第5章 国际化:为全世界构建应用 143
5.1 本地化应用 143
5.1.1 建立本地化 144
5.1.2 本地化Interface Builder文件 145
5.1.3 本地化字符串 147
5.1.4 本地化图片 149
5.1.5 本地化应用的名称 152
5.2 使用日期格式 152
5.2.1 区域的概念 152
5.2.2 日历概述 156
5.2.3 以通用方式存储日期 158
5.3 使用数字 159
5.4 本章小结 164
第6章 多媒体的使用 165
6.1 可携式文档格式 165
6.2 使用UIWebView显示PDF文档 166
6.3 Instruments分析工具介绍 168
6.4 使用QuickLook显示PDF文档 170
6.5 从PDF文档创建缩略图 173
6.6 创建PDF文档 177
6.7 播放和录制音频 181
6.8 相关框架介绍 181
6.8.1 AVFoundation框架 181
6.8.2 Audio Toolbox框架 182
6.8.3 Media Player框架 182
6.9 播放来自应用包的音频文件 182
6.10 从iTunes库中播放音频 187
6.11 播放音频流 190
6.12 录制音频 193
6.13 播放和录制视频 198
6.14 从iTunes库播放视频 201
6.15 播放YouTube视频 204
6.16 录制视频 206
6.17 本章小结 209
第Ⅱ部分 网络和数据处理 213
第7章 使用Web服务和解析 213
7.1 为什么需要使用Web服务 213
7.2 了解基本网络 214
7.2.1 了解协议 214
7.2.2 了解操作 215
7.2.3 了解响应代码 215
7.3 Web服务简介 215
7.4 调用HTTP服务 216
7.4.1 请求网站 216
7.4.2 从HTTP URL下载图片 219
7.4.3 使用HTTPS请求安全网站 224
7.4.4 使用数据块 227
7.5 调用REST服务 231
7.5.1 构建请求 232
7.5.2 处理响应 235
7.5.3 发布到RESTful服务 241
7.6 发出SOAP请求 248
7.6.1 为请求做准备 250
7.6.2 将值传递到操作 252
7.6.3 了解安全的SOAP请求 257
7.7 更多解析 259
7.7.1 逗号分隔值文件 260
7.7.2 将XML转换为NSDictionary 266
7.8 本章小结 269
第8章 使用FTP 271
8.1 开发FTP客户端 271
8.1.1 编写简单的FTP客户端 272
8.1.2 下载远程文件 276
8.1.3 创建远程目录 278
8.1.4 列出远程目录 279
8.1.5 上传文件 283
8.1.6 从NSStream中读取 284
8.1.7 写入NSStream 284
8.1.8 编写复杂的FTP客户端 288
8.2 使用FTP客户端 296
8.3 本章小结 296
第9章 实现Core Data 297
9.1 Core Data简介 297
9.1.1 为什么应使用Core Data 298
9.1.2 托管对象上下文简介 298
9.1.3 托管对象模型简介 298
9.1.4 托管对象简介 298
9.1.5 持久性存储简介 299
9.1.6 获取请求简介 299
9.2 在应用中使用Core Data 299
9.2.1 创建托管对象模型 300
9.2.2 创建托管对象 302
9.2.3 创建持久性存储 303
9.2.4 设置Appdelegate 304
9.3 在应用中使用Core Data 307
9.3.1 使用托管对象 307
9.3.2 获取托管对象 308
9.3.3 使用关系 313
9.3.4 了解模型更改 317
9.4 针对性能进行调优 322
9.4.1 优化保存 326
9.4.2 配置托管对象上下文 327
9.5 通过Core Data实现并发 328
9.6 本章小结 330
第Ⅲ部分 集成应用 333
第10章 通知 333
10.1 实现本地通知 333
10.1.1 了解本地通知 333
10.1.2 创建通知 335
10.1.3 接收通知 338
10.2 了解推送通知 338
10.2.1 配置开发者门户 340
10.2.2 获取证书 343
10.2.3 通过Urban Airship实现 345
10.3 外部通知 348
10.3.1 自定义URL模式 348
10.3.2 响应URL请求 349
10.4 本章小结 350
第11章 发送电子邮件、SMS和拨打电话 351
11.1 发送电子邮件 351
11.1.1 撰写电子邮件 352
11.1.2 使用附件 354
11.2 发送SMS(文本消息) 354
11.2.1 验证SMS是否可用 355
11.2.2 撰写文本消息 355
11.3 拨打电话号码 356
11.4 本章小结 357
第12章 了解Address Book 359
12.1 Address Book框架简介 359
12.2 访问Address Book 360
12.2.1 选择联系人 360
12.2.2 请求访问权限 362
12.2.3 显示并编辑联系人 365
12.2.4 创建联系人 367
12.2.5 删除联系人 369
12.3 以编程方式访问Address Book 370
12.3.1 了解Address Book 370
12.3.2 了解记录 373
12.3.3 了解属性 374
12.3.4 以编程方式创建联系人 375
12.3.5 以编程方式删除联系人 378
12.4 本章小结 378
第13章 事件编程 379
13.1 Event Kit框架简介 379
13.2 使用EventKitUI框架 380
13.2.1 请求访问权限 380
13.2.2 访问日历 382
13.2.3 创建和编辑日历事件 384
13.3 以编程方式访问Calendar数据库 385
13.3.1 创建事件 385
13.3.2 编辑事件 390
13.3.3 删除事件 390
13.3.4 保持同步 390
13.4 使用提醒 391
13.4.1 创建提醒 391
13.4.2 编辑提醒 392
13.4.3 删除提醒 392
13.4.4 使用警报 392
13.5 本章小结 394
第14章 与社交媒体集成 395
14.1 社交媒体集成简介 395
14.2 了解Accounts框架 396
14.3 了解Social框架 400
14.3.1 发帖 401
14.3.2 检索推文 409
14.4 与Facebook集成 411
14.5 创建单点登录应用 418
14.6 本章小结 423
第Ⅳ部分 将应用运用到生产环境中 427
第15章 分析应用 427
15.1 执行技术分析 427
15.1.1 应用崩溃 428
15.1.2 阻止主线程 428
15.1.3 内存泄漏 429
15.1.4 使用同步的HTTP请求 429
15.1.5 广泛的带宽使用率 430
15.1.6 电池消耗 434
15.1.7 糟糕的用户界面 436
15.2 执行商业分析 436
15.3 本章小结 437
第16章 从应用中获利 439
16.1 获利简介 439
16.1.1 付费应用 439
16.1.2 广告 440
16.1.3 In-App Purchases 440
16.1.4 订阅 440
16.1.5 潜在客户开发 440
16.1.6 加盟销售 441
16.2 开发In-App Purchases 441
16.2.1 In-App Purchase简介 441
16.2.2 注册产品 441
16.2.3 选择产品类型 441
16.2.4 了解In-App Purchase进程 442
16.2.5 实现In-App Purchase 443
16.3 从广告中获利 464
16.3.1 iAd框架简介 464
16.3.2 实现AdMob网络 467
16.4 本章小结 470
第17章 了解iTunes Connect 471
17.1 iOS开发者会员中心 472
17.1.1 获取开发者证书 472
17.1.2 管理设备 476
17.1.3 管理应用 479
17.1.4 创建开发配置文件 484
17.1.5 创建发布配置文件 488
17.2 本章小结 491
第18章 构建与发布 493
18.1 App Store审核 493
18.1.1 了解审核指南 493
18.1.2 了解审核流程 494
18.1.3 了解拒绝状态 496
18.1.4 避免各种常见误区 496
18.2 为Ad Hoc发布构建应用 497
18.2.1 构建应用 497
18.2.2 发布后进行测试 499
18.3 为App Store发布构建应用 501
18.4 本章小结 507
附录A 音频代码 509
附录B 图片尺寸 513