第1章 为开发准备好系统和iOS设备 1
         1.1 欢迎进入iOS平台 1
         1.1.1 iOS设备 1
         1.1.2 显示屏和图形 2
         1.1.3 应用程序资源约束 3
         1.1.4 连接性 4
         1.1.5 输入和反馈 4
         1.2 成为iOS开发人员 5
         1.2.1 加入Apple开发人员计划 5
         1.2.2 安装Xcode 8
         1.3 创建并安装开发供应配置文件 9
         1.3.1 什么是开发供应配置文件 10
         1.3.2 配置用于开发的设备 10
         1.4 运行第一个iOS应用程序 13
         1.5 开发技术概述 15
         1.5.1 Apple开发工具 15
         1.5.2 Objective-C 15
         1.5.3 CoCoa Touch 16
         1.5.4 模型-视图-控制器 16
         1.6 进一步探索 16
         1.7 小结 16
         1.8 问与答 16
         1.9 作业 17
         1.9.1 测验 17
         1.9.2 答案 17
         1.9.3 练习 17
         第2章 Xcode和iOS模拟器简介 18
         2.1 使用Xcode 18
         2.1.1 创建和管理项目 19
         2.1.2 编辑和导航代码 28
         2.1.3 生成应用程序 36
         2.1.4 管理项目属性 40
         2.1.5 设置支持的设备朝向 41
         2.1.6 设置状态栏(iOS 6) 41
         2.1.7 应用程序图标和启动图像 42
         2.2 使用iOS模拟器 44
         2.2.1 启动应用程序 45
         2.2.2 模拟多点触摸事件 46
         2.2.3 旋转模拟的设备 47
         2.2.4 模拟其他情况 47
         2.3 进一步探索 48
         2.4 小结 49
         2.5 问与答 49
         2.6 作业 49
         2.6.1 测验 49
         2.6.2 答案 49
         2.6.3 练习 50
         第3章 探索Apple平台语言Objective-C 51
         3.1 面向对象编程和Objective-C 51
         3.1.1 什么是面向对象编程 52
         3.1.2 面向对象编程术语 53
         3.1.3 什么是Objective-C 54
         3.2 探索Objective-C文件结构 54
         3.2.1 头文件/接口文件 55
         3.2.2 实现文件 61
         3.2.3 自动生成的结构 62
         3.2.4 分类和协议 63
         3.3 Objective-C编程基础 64
         3.3.1 声明变量 64
         3.3.2 分配和初始化对象 65
         3.3.3 使用方法及发送消息 67
         3.3.4 表达式和决策 69
         3.4 内存管理和自动引用计数(ARC) 72
         3.4.1 旧方式:保留并释放对象 72
         3.4.2 新方式:自动引用计数 73
         3.5 进一步探索 73
         3.6 小结 74
         3.7 问与答 74
         3.8 作业 75
         3.8.1 测验 75
         3.8.2 答案 75
         3.8.3 练习 75
         第4章 Cocoa Touch内幕 76
         4.1 Cocoa Touch是什么 76
         4.1.1 冷静面对大量的功能 77
         4.1.2 年轻而成熟 77
         4.2 探索iPhone技术层 78
         4.2.1 Cocoa Touch层 78
         4.2.2 多媒体层 79
         4.2.3 核心服务层 80
         4.2.4 核心OS层 82
         4.3 跟踪iOS应用程序的生命周期 82
         4.4 Cocoa基础 83
         4.4.1 核心应用程序类 84
         4.4.2 数据类型类 85
         4.4.3 界面类 88
         4.5 使用Xcode探索iOS框架 91
         4.5.1 Xcode文档 91
         4.5.2 快速帮助 95
         4.6 进一步探索 97
         4.7 小结 97
         4.8 问与答 98
         4.9 作业 98
         4.9.1 测验 98
         4.9.2 答案 98
         4.9.3 练习 98
         第5章 探索Xcode Interface Builder 99
         5.1 了解Interface Builder 99
         5.1.1 IB采用的方法 100
         5.1.2 剖析IB故事板 100
         5.2 创建用户界面 104
         5.2.1 对象库 105
         5.2.2 将对象加入到视图中 106
         5.2.3 使用IB编辑工具 107
         5.2.4 自动布局系统 110
         5.3 定制界面外观 112
         5.3.1 使用属性检查器 113
         5.3.2 设置辅助功能属性 114
         5.3.3 预览界面 115
         5.4 连接到代码 117
         5.4.1 打开项目 117
         5.4.2 实现概述 118
         5.4.3 输出口和操作 119
         5.4.4 对象身份 123
         5.5 进一步探索 124
         5.6 小结 124
         5.7 问与答 124
         5.8 作业 125
         5.8.1 测验 125
         5.8.2 答案 125
         5.8.3 练习 125
         第6章 模型-视图-控制器应用程序设计 126
         6.1 了解设计模式模型-视图-控制器 126
         6.1.1 制作意大利面条 127
         6.1.2 使用MVC将应用程序设计结构化 127
         6.2 Xcode如何实现MVC 128
         6.2.1 视图 128
         6.2.2 视图控制器 128
         6.2.3 数据模型 130
         6.3 使用模板Single View Application 131
         6.3.1 实现概述 131
         6.3.2 创建项目 131
         6.3.3 规划属性和连接 135
         6.3.4 设计界面 137
         6.3.5 创建并连接输出口和操作 139
         6.3.6 实现应用程序逻辑 143
         6.3.7 生成应用程序 143
         6.4 进一步探索 144
         6.5 小结 144
         6.6 问与答 145
         6.7 作业 145
         6.7.1 测验 145
         6.7.2 答案 145
         6.7.3 练习 145
         第7章 使用文本、键盘和按钮 147
         7.1 基本用户输入和输出 147
         7.1.1 按钮 147
         7.1.2 文本框和文本视图 148
         7.1.3 标签 148
         7.2 使用文本框、文本视图和按钮 148
         7.2.1 实现概述 149
         7.2.2 创建项目 149
         7.2.3 使用切割技术制作按钮模板 150
         7.2.4 设计界面 153
         7.2.5 创建并连接输出口和操作 164
         7.2.6 隐藏键盘 165
         7.2.7 实现应用程序逻辑 168
         7.2.8 生成应用程序 169
         7.3 进一步探索 170
         7.4 小结 170
         7.5 问与答 171
         7.6 作业 171
         7.6.1 测验 171
         7.6.2 答案 171
         7.6.3 练习 171
         第8章 处理图像、动画、滑块和步进控件 172
         8.1 用户输入和输出 172
         8.1.1 滑块 172
         8.1.2 步进控件 173
         8.1.3 图像视图 173
         8.2 创建并管理图像动画、滑块和步进控件 174
         8.2.1 实现概述 174
         8.2.2 创建项目 175
         8.2.3 设计界面 176
         8.2.4 创建并连接到输出口和操作 182
         8.2.5 实现应用程序逻辑 185
         8.2.6 生成应用程序 189
         8.3 进一步探索 190
         8.4 小结 190
         8.5 问与答 191
         8.6 作业 191
         8.6.1 测验 191
         8.6.2 答案 191
         8.6.3 练习 191
         第9章 使用高级界面对象和视图 192
         9.1 再谈用户输入和输出 192
         9.1.1 开关 193
         9.1.2 分段控件 193
         9.1.3 Web视图 194
         9.1.4 可滚动的视图 195
         9.2 使用开关、分段控件和Web视图 195
         9.2.1 实现概述 196
         9.2.2 创建项目 196
         9.2.3 设计界面 197
         9.2.4 创建并连接输出口和操作 202
         9.2.5 实现应用程序逻辑 205
         9.2.6 生成应用程序 209
         9.3 使用可滚动视图 209
         9.3.1 实现概述 209
         9.3.2 创建项目 210
         9.3.3 设计界面 210
         9.3.4 创建并连接输出口和操作 214
         9.3.5 实现应用程序逻辑 214
         9.3.6 生成应用程序 215
         9.4 进一步探索 216
         9.5 小结 216
         9.6 问与答 216
         9.7 作业 217
         9.7.1 测验 217
         9.7.2 答案 217
         9.7.3 练习 217
         第10章 引起用户注意 218
         10.1 提醒用户 218
         10.1.1 提醒视图 219
         10.1.2 操作表 221
         10.1.3 系统声音服务 223
         10.2 探索提醒用户的方法 225
         10.2.1 实现概述 225
         10.2.2 创建项目 225
         10.2.3 设计界面 226
         10.2.4 创建并连接输出口和操作 227
         10.2.5 实现提醒视图 229
         10.2.6 实现操作表 234
         10.2.7 实现提醒音和震动 237
         10.3 进一步探索 238
         10.4 小结 239
         10.5 问与答 239
         10.6 作业 239
         10.6.1 测验 239
         10.6.2 答案 240
         10.6.3 练习 240
         第11章 实现多场景和弹出框 241
         11.1 多场景故事板简介 241
         11.1.1 术语 242
         11.1.2 创建多场景项目 243
         11.1.3 创建切换 247
         11.1.4 手工控制模态切换 250
         11.1.5 使用出口和回退切换 251
         11.1.6 以编程方式创建模态场景切换 252
         11.1.7 在场景之间传递数据 254
         11.2 理解iPad弹出框 256
         11.2.1 创建弹出框 257
         11.2.2 创建弹出切换 257
         11.2.3 手工显示弹出框 260
         11.2.4 响应用户关闭弹出框 260
         11.2.5 以编程方式创建并显示弹出框 262
         11.3 使用模态切换 265
         11.3.1 实现概述 265
         11.3.2 创建项目 265
         11.3.3 设计界面 268
         11.3.4 创建模态切换 270
         11.3.5 回退到初始场景 271
         11.3.6 创建并连接输出口和操作 271
         11.3.7 实现应用程序逻辑 272
         11.3.8 生成应用程序 274
         11.4 使用弹出框 274
         11.4.1 创建项目 275
         11.4.2 设计界面 275
         11.4.3 创建弹出切换 276
         11.4.4 创建并连接输出口 277
         11.4.5 实现应用程序逻辑 277
         11.4.6 生成应用程序 279
         11.5 进一步探索 279
         11.6 小结 280
         11.7 问与答 280
         11.8 作业 280
         11.8.1 测验 280
         11.8.2 答案 280
         11.8.3 练习 280
         第12章 使用工具栏和选择器做出选择 281
         12.1 了解工具栏 281
         12.2 探索选择器 284
         12.2.1 日期选择器 285
         12.2.2 选择器视图 286
         12.3 使用日期选择器 290
         12.3.1 实现概述 291
         12.3.2 创建项目 291
         12.3.3 设计界面 293
         12.3.4 创建切换 294
         12.3.5 创建并连接输出口和操作 295
         12.3.6 实现场景切换逻辑 296
         12.3.7 实现日期计算逻辑 299
         12.3.8 生成应用程序 302
         12.4 实现自定义选择器 303
         12.4.1 实现概述 303
         12.4.2 创建项目 303
         12.4.3 设计界面 305
         12.4.4 创建切换 307
         12.4.5 创建并连接输出口和操作 307
         12.4.6 实现场景切换逻辑 308
         12.4.7 实现自定义选择器视图 309
         12.4.8 生成应用程序 315
         12.5 进一步探索 315
         12.6 小结 316
         12.7 问与答 316
         12.8 作业 317
         12.8.1 测验 317
         12.8.2 答案 317
         12.8.3 练习 317
         第13章 使用导航控制器和选项卡栏控制器 318
         13.1 高级视图控制器 318
         13.2 探索导航控制器 320
         13.2.1 导航栏、导航项和栏按钮项 320
         13.2.2 在故事板中使用导航控 制器 321
         13.2.3 在导航场景之间共享数据 323
         13.3 了解选项卡栏控制器 324
         13.3.1 选项卡栏和选项卡栏项 324
         13.3.2 在故事板中使用选项卡栏控制器 325
         13.3.3 在选项卡栏控制器管理的场景之间共享数据 328
         13.4 使用导航控制器 328
         13.4.1 实现概述 329
         13.4.2 创建项目 329
         13.4.3 创建压入切换 332
         13.4.4 设计界面 333
         13.4.5 创建并连接输出口和操作 334
         13.4.6 实现应用程序逻辑 335
         13.4.7 生成应用程序 337
         13.5 使用选项卡栏控制器 337
         13.5.1 实现概述 337
         13.5.2 创建项目 337
         13.5.3 创建选项卡栏关系 339
         13.5.4 设计界面 340
         13.5.5 创建并连接输出口和操作 341
         13.5.6 实现应用程序逻辑 342
         13.5.7 生成应用程序 344
         13.6 进一步探索 345
         13.7 小结 345
         13.8 问与答 346
         13.9 作业 346
         13.9.1 测验 346
         13.9.2 答案 346
         13.9.3 练习 347
         第14章 使用表视图和分割视图控制器导航数据 348
         14.1 了解表视图 348
         14.1.1 表视图的外观 349
         14.1.2 表单元格 349
         14.1.3 添加表视图 350
         14.2 探索分割视图控制器(仅适用于iPad) 355
         14.2.1 实现分割视图控制器 356
         14.2.2 模板Master-Detail Application 357
         14.3 一个简单的表视图应用程序 358
         14.3.1 实现概述 358
         14.3.2 创建项目 358
         14.3.3 设计界面 359
         14.3.4 连接输出口delegate和dataSource 360
         14.3.5 实现应用程序逻辑 361
         14.3.6 生成应用程序 365
         14.4 创建基于主-从视图的应用程序 365
         14.4.1 实现概述 366
         14.4.2 创建项目 366
         14.4.3 调整iPad界面 367
         14.4.4 调整iPhone界面 369
         14.4.5 实现应用程序数据源 371
         14.4.6 实现主视图控制器 374
         14.4.7 实现细节视图控制器 377
         14.4.8 修复细节视图控制器引用问题 378
         14.4.9 生成应用程序 379
         14.5 进一步探索 379
         14.6 小结 379
         14.7 问与答 380
         14.8 作业 380
         14.8.1 测验 380
         14.8.2 答案 380
         14.8.3 练习 380
         第15章 读写应用程序数据 381
         15.1 iOS应用程序和数据存储 381
         15.2 数据存储方式 383
         15.2.1 用户默认设置 384
         15.2.2 设置束 385
         15.2.3 直接访问文件系统 387
         15.3 创建隐式首选项 389
         15.3.1 实现概述 390
         15.3.2 创建项目 390
         15.3.3 创建界面 390
         15.3.4 创建并连接输出口和操作 391
         15.3.5 实现应用程序逻辑 392
         15.3.6 生成应用程序 395
         15.4 实现系统设置 396
         15.4.1 实现概述 396
         15.4.2 创建项目 396
         15.4.3 设计界面 397
         15.4.4 创建并连接输出口 398
         15.4.5 创建设置束 398
         15.4.6 实现应用程序逻辑 404
         15.4.7 生成应用程序 405
         15.5 实现文件系统存储 406
         15.5.1 实现概述 406
         15.5.2 创建项目 406
         15.5.3 设计界面 406
         15.5.4 创建并连接输出口和操作 407
         15.5.5 实现应用程序逻辑 409
         15.6 进一步探索 412
         15.7 小结 413
         15.8 问与答 413
         15.9 作业 413
         15.9.1 测验 413
         15.9.2 答案 414
         15.9.3 练习 414
         第16章 创建自适应和向后兼容的用户界面 415
         16.1 自适应界面 415
         16.1.1 启用界面旋转 416
         16.1.2 设计可旋转和调整大小的界面 417
         16.2 使用自动布局 418
         16.2.1 自动布局的语言和工具 419
         16.2.2 在约束对象中导航 421
         16.2.3 示例1:居中约束 427
         16.2.4 示例2:增大控件 430
         16.2.5 示例3:统一调整大小 433
         16.3 以编程方式定义界面 436
         16.3.1 实现概述 436
         16.3.2 创建项目 437
         16.3.3 界面编程 438
         16.3.4 生成应用程序 442
         16.4 旋转时切换视图 442
         16.4.1 实现概述 442
         16.4.2 创建项目 442
         16.4.3 设计界面 443
         16.4.4 创建并连接输出口 444
         16.4.5 实现应用程序逻辑 445
         16.4.6 生成应用程序 447
         16.5 进一步探索 447
         16.6 小结 447
         16.7 问与答 447
         16.8 作业 448
         16.8.1 测验 448
         16.8.2 答案 448
         16.8.3 练习 448
         第17章 使用复杂的触摸和手势 449
         17.1 多点触摸手势识别 449
         17.2 添加手势识别器 450
         17.3 使用手势识别器 451
         17.3.1 实现概述 451
         17.3.2 创建项目 452
         17.3.3 设计界面 453
         17.3.4 给视图添加手势识别器 455
         17.3.5 创建并连接输出口和操作 458
         17.3.6 实现应用程序逻辑 460
         17.3.7 生成应用程序 467
         17.4 进一步探索 467
         17.5 小结 467
         17.6 问与答 468
         17.7 作业 468
         17.7.1 测验 468
         17.7.2 答案 468
         17.7.3 练习 468
         第18章 检测朝向和移动 469
         18.1 理解运动硬件 469
         18.1.1 加速计 470
         18.1.2 陀螺仪 471
         18.2 访问朝向和运动数据 472
         18.2.1 通过UIDevice请求朝向通知 472
         18.2.2 使用Core Motion读取加速度、旋转速度和姿态 473
         18.3 检测朝向 475
         18.3.1 实现概述 475
         18.3.2 创建项目 475
         18.3.3 设计界面 475
         18.3.4 创建并连接输出口 476
         18.3.5 实现应用程序逻辑 476
         18.3.6 生成应用程序 478
         18.4 检测加速、倾斜和旋转 479
         18.4.1 实现概述 479
         18.4.2 创建项目 480
         18.4.3 设计界面 480
         18.4.4 创建并连接输出口和操作 481
         18.4.5 实现应用程序逻辑 482
         18.4.6 生成应用程序 488
         18.5 进一步探索 488
         18.6 小结 489
         18.7 问与答 489
         18.8 作业 489
         18.8.1 测验 489
         18.8.2 答案 490
         18.8.3 练习 490
         第19章 使用多媒体 491
         19.1 探索多媒体 491
         19.1.1 Media Player框架 492
         19.1.2 AV Foundation框架 497
         19.1.3 图像选择器 499
         19.1.4 Core Image框架 501
         19.2 创建用于练习使用多媒体的应用程序 503
         19.2.1 实现概述 503
         19.2.2 创建项目 503
         19.2.3 设计界面 504
         19.2.4 创建并连接输出口和操作 505
         19.2.5 实现电影播放器 507
         19.2.6 实现音频录制和播放 510
         19.2.7 使用照片库和相机 514
         19.2.8 实现Core Image滤镜 517
         19.2.9 访问并播放音乐库 518
         19.3 进一步探索 523
         19.4 小结 524
         19.5 问与答 524
         19.6 作业 525
         19.6.1 测验 525
         19.6.2 答案 525
         19.6.3 练习 525
         第20章 与其他应用程序交互 526
         20.1 集成iOS服务 526
         20.1.1 地址簿 526
         20.1.2 电子邮件 530
         20.1.3 在社交网站上发表信息 531
         20.1.4 地图功能 533
         20.2 使用地址簿、电子邮件、社交网络和地图 537
         20.2.1 实现概述 538
         20.2.2 创建项目 538
         20.2.3 设计界面 538
         20.2.4 创建并连接输出口和操作 540
         20.2.5 实现地址簿逻辑 541
         20.2.6 实现地图逻辑 544
         20.2.7 实现电子邮件逻辑 547
         20.2.8 实现社交网络逻辑 548
         20.2.9 将状态栏设置为白色(可选) 549
         20.2.10 生成应用程序 549
         20.3 进一步探索 550
         20.4 小结 551
         20.5 问与答 551
         20.6 作业 551
         20.6.1 测验 551
         20.6.2 答案 551
         20.6.3 练习 551
         第21章 实现定位服务 552
         21.1 理解Core Location 552
         21.1.1 获取位置 552
         21.1.2 获取航向 556
         21.2 创建支持定位的应用程序 558
         21.2.1 实现概述 558
         21.2.2 创建项目 558
         21.2.3 设计视图 559
         21.2.4 创建并连接输出口 560
         21.2.5 实现应用程序逻辑 560
         21.2.6 将状态栏设置为白色 564
         21.2.7 生成应用程序 564
         21.3 理解磁性指南针 565
         21.3.1 实现概述 565
         21.3.2 创建项目 565
         21.3.3 修改用户界面 566
         21.3.4 创建并连接输出口 567
         21.3.5 修改应用程序逻辑 567
         21.3.6 生成应用程序 572
         21.4 进一步探索 573
         21.5 小结 573
         21.6 问与答 573
         21.7 作业 574
         21.7.1 测验 574
         21.7.2 答案 574
         21.7.3 练习 574
         第22章 创建支持后台处理的应用程序 575
         22.1 理解iOS后台处理 575
         22.1.1 后台处理类型 576
         22.1.2 支持后台处理的应用程序的生命周期 578
         22.2 禁用后台处理 579
         22.3 处理后台挂起 580
         22.4 实现本地通知 581
         22.4.1 常用的通知属性 582
         22.4.2 创建和调度通知 582
         22.5 使用任务特定的后台处理 583
         22.5.1 修改应用程序Cupertion以支持在后台播放音频 584
         22.5.2 使用声音指示前往库珀蒂诺的方向 585
         22.5.3 添加后台模式 587
         22.6 完成长时间运行的后台 任务 588
         22.6.1 实现概述 588
         22.6.2 创建项目 589
         22.6.3 设计界面 589
         22.6.4 创建并连接输出口 590
         22.6.5 实现应用程序逻辑 590
         22.6.6 启用后台任务处理 591
         22.6.7 生成应用程序 592
         22.7 执行后台获取 592
         22.7.1 实现概述 593
         22.7.2 创建项目 593
         22.7.3 设计界面 593
         22.7.4 创建并连接输出口 594
         22.7.5 实现应用程序逻辑 594
         22.7.6 添加后台获取模式 595
         22.7.7 生成应用程序 596
         22.8 进一步探索 596
         22.9 小结 596
         22.10 问与答 597
         22.11 作业 597
         22.11.1 测验 597
         22.11.2 答案 597
         22.11.3 练习 597
         第23章 创建通用应用程序 598
         23.1 开发通用应用程序 598
         23.1.1 理解通用模板 599
         23.1.2 通用应用程序设置方面的不同 600
         23.2 创建通用应用程序:方法1 602
         23.2.1 实现概述 602
         23.2.2 创建项目 603
         23.2.3 设计界面 603
         23.2.4 创建并连接输出口 604
         23.2.5 实现应用程序逻辑 604
         23.2.6 生成应用程序 605
         23.3 创建通用应用程序:方法2 605
         23.3.1 创建项目 605
         23.3.2 设计界面 607
         23.3.3 创建并连接输出口 607
         23.3.4 实现应用程序逻辑 607
         23.3.5 生成应用程序 608
         23.4 使用多个目标 608
         23.4.1 将iPhone目标转换为iPad目标 609
         23.4.2 将iPad目标转换为iPhone目标 609
         23.5 进一步探索 610
         23.6 小结 611
         23.7 问与答 611
         23.8 作业 611
         23.8.1 测验 611
         23.8.2 答案 611
         23.8.3 练习 611
         第24章 应用程序跟踪、监视和调试 612
         24.1 使用NSLog提供即时反馈 612
         使用NSLog 613
         24.2 使用Xcode调试器 615
         24.2.1 设置断点及单步执行代码 616
         24.2.2 使用调试导航器 624
         24.3 进一步探索 627
         24.4 小结 627
         24.5 问与答 628
         24.6 作业 628
         24.6.1 测验 628
         24.6.2 答案 628
         24.6.3 练习 628
      · · · · · ·     (
收起)