第1章 iOS基础 1
1.1 iOS发展历史 2
1.2 iOS特性 4
1.3 iOS架构 5
1.3.1 Cocoa Touch层 6
1.3.2 媒体层 7
1.3.3 Core Services层 8
1.3.4 Core OS层 9
1.4 Objective-C概述 9
1.5 比较iOS和Mac OS 10
1.5.1 UIKit与AppKit的对比 10
1.5.2 Foundation框架的差异 11
1.5.3 其他框架的改变 12
1.6 iOS开发环境和工具 13
1.6.1 了解Xcode 13
1.6.2 Xcode导航面板 14
1.6.3 Xcode检查器面板 16
1.6.4 Xcode库面板 17
1.6.5 使用帮助 19
1.7 使用Xcode 20
1.7.1 案例:编写第一个Objective-C程序 20
1.7.2 案例:创建第一个项目 24
1.8 小结 29
第2章 数据类型和运算符 30
2.1 数据类型分类 31
2.2 简单数据类型 31
2.2.1 整型 31
2.2.2 案例:输出格式字符 35
2.2.3 浮点型 36
2.2.4 字符型 41
2.2.5 案例:定义字符串 42
2.2.6 枚举型 43
2.2.7 布尔型 45
2.3 类型转换 48
2.3.1 案例:自动类型转换 48
2.3.2 案例:强制类型转换 49
2.3.3 案例:自动提升 50
2.4 运算符 51
2.4.1 运算符分类 51
2.4.2 运算优先级 52
2.4.3 算术运算符 53
2.4.4 赋值运算符 56
2.4.5 位运算符 58
2.4.6 比较运算符 60
2.4.7 逻辑运算符 61
2.4.8 逗号运算符 63
2.4.9 条件运算符 63
2.5 小结 64
第3章 控制语句 65
3.1 条件语句 66
3.1.1 if语句 66
3.1.2 案例:分支语句应用 68
3.1.3 switch语句 71
3.2 循环语句 74
3.2.1 while语句 74
3.2.2 do-while语句 76
3.2.3 for语句 77
3.2.4 案例:for语句应用 79
3.2.5 案例:嵌套循环 81
3.3 控制语句 82
3.3.1 break语句 82
3.3.2 continue语句 83
3.3.3 return语句 84
3.3.4 案例:使用goto语句 84
3.4 预处理命令 86
3.4.1 宏定义 87
3.4.2 运算符 89
3.4.3 #import语句 89
3.4.4 条件编译 90
3.5 小结 91
第4章 C语言特性 92
4.1 数组 93
4.1.1 定义数组 93
4.1.2 初始化数组 93
4.1.3 使用数组 94
4.1.4 定义多维数组 96
4.1.5 初始化多维数组 97
4.1.6 使用字符数组 102
4.1.7 案例实战 103
4.2 函数 108
4.2.1 定义函数 108
4.2.2 声明函数 111
4.2.3 函数类型 111
4.2.4 函数参数 113
4.2.5 函数返回值 115
4.2.6 案例实战 116
4.3 块 122
4.3.1 定义块 122
4.3.2 块作用域 124
4.3.3 使用块变量类型 126
4.4 结构 127
4.4.1 定义结构 127
4.4.2 使用typedef 130
4.4.3 初始化结构 131
4.4.4 使用结构体数组 132
4.4.5 嵌套结构 133
4.5 指针 135
4.5.1 认识指针 135
4.5.2 定义指针变量 135
4.5.3 指针的基本运算 136
4.5.4 指针变量作为函数参数 139
4.5.5 对象和指针的关系 141
4.6 数组和指针 141
4.6.1 指向数组的指针变量 142
4.6.2 指针运算 143
4.6.3 案例实战 147
4.7 案例应用 151
4.7.1 使用字符串指针 151
4.7.2 使用函数指针 152
4.8 小结 157
第5章 类 158
5.1 定义类 159
5.1.1 认识类 159
5.1.2 接口 159
5.1.3 实现 162
5.1.4 案例:定义类 163
5.2 使用类 165
5.2.1 实例化 165
5.2.2 指针 166
5.2.3 self 168
5.2.4 id类型 171
5.2.5 类名的使用 173
5.2.6 类的比较 173
5.3 变量 174
5.3.1 局部变量 174
5.3.2 全局变量 175
5.3.3 实例变量 177
5.3.4 静态变量 180
5.3.5 变量的存储类别 182
5.3.6 案例:定义单例类 183
5.3.7 案例:定义类变量 184
5.4 属性 185
5.4.1 属性的声明 185
5.4.2 属性的实现 187
5.4.3 属性类型和相关函数 188
5.4.4 属性类型编码 189
5.4.5 属性重声明 189
5.4.6 子类中的属性 190
5.4.7 案例:使用封装 190
5.4.8 案例:使用访问控制符 193
5.4.9 案例:合成存取 194
5.4.10 案例:点语法存取 197
5.5 方法 198
5.5.1 定义方法 198
5.5.2 方法的所属性 199
5.5.3 案例:设计可变形参的方法 199
5.6 继承 201
5.6.1 继承实例变量 202
5.6.2 方法的继承 202
5.6.3 方法的重写 202
5.6.4 类别和扩展 204
5.6.5 案例:类继承 206
5.6.6 案例:重写 208
5.6.7 案例:使用super关键字 209
5.7 异常处理 212
5.7.1 启用异常处理 212
5.7.2 异常处理 212
5.7.3 捕捉不同类型的异常 213
5.7.4 抛出异常 214
5.8 类型 214
5.8.1 静态指定类型 214
5.8.2 类型的自查 215
5.9 根类 215
5.9.1 NSObject简介 216
5.9.2 根类和协议 216
5.9.3 根类方法 216
5.9.4 根类接口规范 218
5.9.5 根类实例方法和类方法 218
5.10 小结 218
第6章 消息和协议 219
6.1 消息 220
6.1.1 定义消息 220
6.1.2 发送消息 221
6.1.3 接收实例变量 222
6.1.4 获取方法地址 222
6.1.5 objc_msgSend()函数 223
6.1.6 使用隐藏的参数 224
6.1.7 消息转发 225
6.1.8 消息转发与多重继承 226
6.1.9 消息代理对象 227
6.1.10 消息转发与类继承 227
6.1.11 多态性 228
6.1.12 动态绑定 228
6.1.13 解析动态方法 229
6.1.14 动态加载 229
6.1.15 “.”语法格式 230
6.2 协议 232
6.2.1 预定义声明接口 233
6.2.2 预定义方法 233
6.2.3 声明接口 234
6.2.4 非层级相似性 235
6.2.5 正式协议 235
6.2.6 非正式协议 237
6.2.7 协议对象 238
6.2.8 采用协议 239
6.2.9 服从协议 239
6.2.10 类型校验 242
6.2.11 嵌套协议 242
6.2.12 引用其他协议 243
6.3 小结 244
第7章 对象 245
7.1 创建对象 246
7.1.1 分配对象 246
7.1.2 初始化对象 246
7.1.3 dealloc方法 250
7.1.4 类工厂方法 251
7.2 对象动态类型 251
7.3 对象可变性 252
7.3.1 可变或不可变对象 252
7.3.2 用可变对象编程 253
7.4 对象通信 255
7.4.1 面向对象程序中的通信 255
7.4.2 IBoutlet变量 255
7.4.3 委托和数据源 256
7.4.4 目标-动作机制 259
7.4.5 绑定 262
7.4.6 通告 263
7.5 使用对象 265
7.5.1 对象所有权策略 266
7.5.2 保留计数 266
7.5.3 自动释放 266
7.5.4 共享对象的有效性 268
7.5.5 存取方法 268
7.5.6 回收对象 269
7.5.7 通过引用返回的对象 269
7.6 小结 270
第8章 Foundation框架基础 271
8.1 认识Foundation框架 272
8.2 使用Foundation框架 275
8.3 数字类型 278
8.3.1 数字类型类NSNumber 278
8.3.2 比较int、NSInteger、NSUInteger和NSNumber 279
8.4 字符串类型 280
8.4.1 不可变字符串类NSString 280
8.4.2 可变字符串类NSMutableString 282
8.4.3 案例实战 284
8.5 日期类型 287
8.5.1 日期类型类NSDate 287
8.5.2 NSCalendar和NSDateComponents 289
8.5.3 案例实战 292
8.6 数组类型 296
8.6.1 不可变数组类NSArray 296
8.6.2 可变数组类NSMutableArray 298
8.6.3 多维数组 299
8.6.4 案例:操作数组 303
8.6.5 案例:操作元素 304
8.6.6 案例:数组排序 305
8.6.7 案例:遍历数组 307
8.6.8 案例:快速枚举 308
8.6.9 案例:可变数组 308
8.7 字典类型 310
8.7.1 不可变字典类NSDictionary 310
8.7.2 可变字典类NSMutableDictionary 311
8.7.3 案例:使用字典 312
8.7.4 案例:字典排序 314
8.7.5 案例:字典过滤 316
8.7.6 案例:使用可变字典 317
8.8 案例实战:集合类型 318
8.8.1 使用NSSet 318
8.8.2 检测NSSet重复值 320
8.8.3 可变集合 322
8.8.4 计数集合 324
8.8.5 有序集合 325
8.9 小结 326
第9章 iOS应用开发核心 327
9.1 iOS应用架构 328
9.1.1 生命周期 328
9.1.2 主函数 328
9.1.3 应用委托 329
9.1.4 nib文件 329
9.1.5 事件处理周期 330
9.1.6 基本设置模式 331
9.2 运行环境处理机制 332
9.2.1 快速启动 332
9.2.2 安全处理 332
9.2.3 内存处理 333
9.2.4 节电处理 333
9.3 程序包 333
9.3.1 信息属性 334
9.3.2 程序图标和启动图像 337
9.4 定制行为 338
9.4.1 景观模式启动 338
9.4.2 与其他程序通信 338
9.4.3 URL模式 339
9.4.4 处理URL请求 340
9.4.5 偏好设置 341
9.4.6 关闭锁定 342
9.5 键盘管理 342
9.5.1 接收键盘通告 342
9.5.2 显示键盘 343
9.5.3 取消键盘 343
9.5.4 移动键盘 343
9.6 国际化 346
9.7 优化处理 347
9.7.1 不要阻塞主线程 347
9.7.2 有效使用内存 347
9.7.3 减少内存印迹 348
9.7.4 恰当分配内存 348
9.7.5 浮点运算 349
9.7.6 减少电力消耗 349
9.7.7 代码优化 350
9.8 小结 350
第10章 iOS开发入门 351
10.1 熟悉iOS项目 352
10.1.1 文件结构 352
10.1.2 新建xib界面文件 354
10.1.3 认识xib界面 356
10.1.4 添加控件 358
10.1.5 编辑控件属性 359
10.1.6 UIView属性 361
10.1.7 UILabel属性 362
10.2 iOS运行机制 365
10.2.1 了解MVC 365
10.2.2 入口函数 366
10.2.3 应用程序委托 367
10.2.4 视图控制器 369
10.3 事件处理机制 371
10.3.1 获取控件 372
10.3.2 事件处理 378
10.4 故事板 383
10.5 案例实战 385
10.5.1 动态更新文本 385
10.5.2 添加和删除控件 387
10.5.3 设计跟随手指的小球 390
10.5.4 设计应用项目图标 393
10.5.5 设计欢迎界面 395
10.6 小结 397
第11章 窗口和视图 398
11.1 认识窗口和视图 399
11.1.1 窗口 399
11.1.2 视图 399
11.1.3 视图控制器 400
11.2 视图架构 400
11.2.1 视图交互模型 400
11.2.2 视图渲染架构 402
11.2.3 Core Animation 402
11.2.4 视图的层 403
11.2.5 动画支持 403
11.2.6 视图坐标系统 403
11.2.7 边框、边界和中心 404
11.2.8 坐标系统变换 405
11.2.9 内容模式与比例缩放 405
11.2.10 自动尺寸调整 407
11.3 创建和管理视图层次 408
11.3.1 视图层次 408
11.3.2 创建视图对象 408
11.3.3 添加和移除子视图 409
11.3.4 坐标转换 411
11.3.5 标识视图 412
11.4 动态控制视图 412
11.4.1 实现视图动画 412
11.4.2 配置动画的参数 413
11.4.3 配置动画的委托 413
11.4.4 响应布局的变化 414
11.4.5 重画视图的内容 414
11.4.6 隐藏视图 415
11.5 创建定制视图 415
11.5.1 初始化定制视图 415
11.5.2 描画视图内容 416
11.5.3 响应事件 416
11.5.4 清理视图对象 417
11.6 小结 417
第12章 视图控制器 418
12.1 视图控制器基础 419
12.1.1 视图控制器的功能 419
12.1.2 屏幕、窗口和视图元素 419
12.1.3 视图管理机制 420
12.1.4 视图控制器分类 420
12.1.5 内容展示方式 422
12.1.6 视图控制器混合应用 423
12.2 视图控制器生命周期 424
12.2.1 初始化视图 424
12.2.2 加载和卸载视图 424
12.3 标准视图控制器 426
12.3.1 标准视图控制器概述 426
12.3.2 使用标准视图控制器 428
12.4 分割视图控制器 429
12.4.1 分割视图控制器概述 429
12.4.2 使用分割视图控制器 430
12.5 导航控制器 432
12.5.1 导航控制器概述 433
12.5.2 使用导航控制器 434
12.6 选项卡控制器 436
12.6.1 选项卡控制器概述 436
12.6.2 使用选项卡控制器 437
12.7 页视图控制器 438
12.7.1 页视图控制器概述 438
12.7.2 使用页视图控制器 440
12.8 小结 442
第13章 事件 443
13.1 触摸事件 444
13.1.1 触摸模型 444
13.1.2 触摸与事件 444
13.1.3 事件传递 445
13.1.4 事件响应过程 446
13.1.5 事件处理方法 447
13.1.6 案例:处理多点触摸事件 449
13.1.7 案例:检测碰擦手势 450
13.1.8 案例:处理复杂多点触摸序列 451
13.2 运动事件 452
13.3 复制、剪切和粘贴 453
13.3.1 认识粘贴板 453
13.3.2 数据表示 454
13.3.3 选择菜单 455
13.3.4 复制和剪切 456
13.3.5 粘贴 457
13.3.6 消除菜单 458
13.4 小结 459
第14章 使用控件(上) 460
14.1 UIKit概述 461
14.1.1 视图分类 461
14.1.2 应用界面构成 461
14.1.3 UIView视图 462
14.1.4 UIControl控件 462
14.2 按钮 464
14.2.1 添加按钮 464
14.2.2 案例:定义按钮 467
14.2.3 案例:配合使用标签和按钮 470
14.3 文本框 473
14.3.1 添加文本框 473
14.3.2 案例:设计登录表单 476
14.3.3 案例:关闭虚拟键盘 477
14.4 多行文本 480
14.4.1 添加多行文本框 481
14.4.2 案例:设计内容简介表单 484
14.4.3 案例:设计导航按钮控制虚拟键盘 487
14.4.4 案例:自定义虚拟键盘键 488
14.4.5 案例:自定义快捷编辑菜单 490
14.5 开关按钮 492
14.5.1 添加开关按钮 492
14.5.2 案例:使用开关按钮控制界面背景 493
14.6 分段控件 494
14.6.1 添加分段控件 494
14.6.2 案例:使用分段控件控制界面背景 496
14.6.3 案例:动态控制分段控件 497
14.7 滑块控件 500
14.7.1 添加滑块控件 500
14.7.2 案例:设计控件 502
14.7.3 案例:使用滑块控制透明度 503
14.8 图像控件 505
14.8.1 添加图像控件 506
14.8.2 案例:预览图片 507
14.8.3 案例:设计幻灯片 510
14.9 进度条 512
14.9.1 添加进度条 512
14.9.2 案例:设计进度条 513
14.10 活动指示器 515
14.10.1 添加活动指示器 515
14.10.2 案例:设计活动指示器和进度条 516
14.11 警告框 518
14.11.1 创建警告框 518
14.11.2 案例:设计警告框 522
14.12 操作表 524
14.13 日期选择器 528
14.13.1 添加日期选择器 528
14.13.2 案例:设计倒计时 530
14.14 通用选择器 532
14.14.1 添加通用选择器 532
14.14.2 案例:设计单列选择器 535
14.14.3 案例:自定义选择器视图 537
14.15 微调器 543
14.15.1 添加微调器 543
14.15.2 案例:设计微调器 544
14.16 网页控件 545
14.16.1 添加网页控件 545
14.16.2 案例:设计网页控件 546
14.17 小结 550
第15章 使用控件(下) 551
15.1 工具条 552
15.1.1 添加工具条 552
15.1.2 案例:设计工具条 555
15.2 搜索条 558
15.2.1 添加搜索条 558
15.2.2 案例:设计搜索条 562
15.2.3 案例:设计显示列表 566
15.3 导航条 570
15.3.1 使用导航条 570
15.3.2 案例:使用UINavigationController 576
15.4 表格控制器 581
15.4.1 表视图概述 582
15.4.2 添加表格 583
15.4.3 自定义单元格 590
15.4.4 案例:设计表格 592
15.4.5 案例:编辑单元格 595
15.4.6 案例:编辑表格 601
15.4.7 案例:表格分区 607
15.5 标签页 609
15.5.1 使用UITabBar 609
15.5.2 案例:设计标签页1 612
15.5.3 案例:设计标签页2 616
15.6 页控件 617
15.6.1 分页控件 617
15.6.2 案例:使用UIPageControl 618
15.6.3 案例:使用UIPageViewController 622
15.7 小结 627
第16章 移动绘图 628
16.1 基本概念 629
16.1.1 绘制周期 629
16.1.2 坐标系统 629
16.1.3 图形上下文 630
16.1.4 点和像素 630
16.1.5 颜色空间 630
16.1.6 图像格式 631
16.1.7 定制绘制 631
16.1.8 绘制性能 631
16.1.9 图像质量 632
16.2 Quartz 2D 632
16.2.1 页面 632
16.2.2 图形上下文 633
16.2.3 路径 635
16.2.4 颜色空间 636
16.2.5 变换 637
16.2.6 阴影 640
16.2.7 梯度 642
16.2.8 透明层 645
16.2.9 使用PDF文档 646
16.3 案例实战 651
16.3.1 案例:绘制图形 651
16.3.2 案例:绘制线条 653
16.3.3 案例:绘制文本 657
16.3.4 案例:绘制路径 661
16.3.5 案例:绘制曲线 665
16.3.6 案例:设计画板 667
16.4 小结 672
第17章 动画设计 673
17.1 OpenGL ES 674
17.1.1 OpenGLES概述 674
17.1.2 配置上下文 675
17.1.3 OpenGLES绘制 676
17.2 OpenGLES应用 680
17.2.1 项目的创建及设置 680
17.2.2 上下文的创建 681
17.2.3 渲染缓存的创建 681
17.2.4 帧缓存的创建 682
17.2.5 屏幕的清理 682
17.2.6 OpenGLView和应用程序委托关联 682
17.3 Core Animation 683
17.3.1 层和变换 685
17.3.2 树层结构 686
17.3.3 层上下文和层行为 687
17.3.4 动画 688
17.3.5 事务 690
17.3.6 动画层布局 690
17.4 案例实战 691
17.4.1 案例:设计过渡动画 691
17.4.2 案例:设计属性动画 695
17.4.3 案例:设计路径动画 700
17.5 小结 702
第18章 多媒体开发 703
18.1 使用声音 704
18.1.1 音频编解码 704
18.1.2 音频回放和录制格式 705
18.1.3 音频会话 705
18.1.4 播放音频 706
18.1.5 通过iPod媒体库访问接口播放媒体项 706
18.1.6 使用系统声音服务播放短声音及触发震动 707
18.1.7 通过AVAudioPlayer类轻松播放声音 708
18.1.8 用音频队列服务播放和控制声音 710
18.1.9 创建一个音频队列对象 710
18.1.10 控制回放音量 711
18.1.11 指示回放音量 712
18.1.12 同时播放多路声音 712
18.1.13 使用OpenAL播放和定位声音 712
18.1.14 录制音频 712
18.1.15 解析音频流 714
18.1.16 iOS系统上的音频单元支持 715
18.1.17 iPhone音频的最佳实践 715
18.2 使用视频 716
18.2.1 录制视频 716
18.2.2 播放视频文件 717
18.3 案例实战 718
18.3.1 案例:播放音效 718
18.3.2 案例:播放音乐 719
18.3.3 案例:播放视频 723
18.3.4 案例:录制音频 724
18.3.5 案例:录制视频 728
18.4 小结 732
第19章 设备管理 733
19.1 硬件检测 734
19.2 配件通信 734
19.2.1 配件基础 734
19.2.2 声明协议 735
19.2.3 连接配件 735
19.2.4 监控配件 736
19.3 使用加速计 737
19.3.1 选择更新频率 738
19.3.2 分离重力数据 738
19.3.3 分离实时运动数据 738
19.3.4 获取设备方向 739
19.4 使用位置和方向 739
19.4.1 获取当前位置 739
19.4.2 获取方向事件 741
19.5 使用地图 742
19.5.1 添加地图视图 742
19.5.2 缩放和移动地图 743
19.5.3 显示用户当前位置 743
19.5.4 坐标和像素切换 744
19.5.5 显示注解 744
19.5.6 添加和移除注解对象 744
19.5.7 定义注解视图 745
19.5.8 创建注解视图 745
19.5.9 处理注解视图中的事件 746
19.5.10 获取地标信息 749
19.6 使用照相机 749
19.7 使用照片库 751
19.8 使用邮件 751
19.9 案例实战 753
19.9.1 案例:管理通信设备 753
19.9.2 案例:获取加速度、陀螺仪、磁场数据 754
19.9.3 案例:获取移动数据 757
19.9.4 案例:获取位置信息 759
19.9.5 案例:地图定位 761
19.10 小结 765
第20章 文件和数据操作 766
20.1 文件操作 767
20.1.1 iPhone常用目录 767
20.1.2 获取程序目录路径 768
20.1.3 文件更新 769
20.1.4 文件备份和恢复 769
20.2 数据读写 770
20.2.1 文件数据的读写 770
20.2.2 属性列表数据的读写 770
20.2.3 用归档器对数据进行读写 771
20.2.4 将数据写到Documents目录 772
20.2.5 从Documents目录对数据进行读取 772
20.2.6 保存状态信息 773
20.3 SQLite 773
20.3.1 数据类型 773
20.3.2 常用函数及返回编码 774
20.3.3 操作数据库 776
20.3.4 创建表 777
20.3.5 操作数据语句 778
20.3.6 数据查询 778
20.4 案例实战 779
20.4.1 案例:使用属性列表设计备忘录 779
20.4.2 案例:使用SQLite设计单词本 783
20.5 小结 787
第21章 综合案例:抢扑克 788
21.1 设计提示框交互项目 789
21.1.1 使用UIAlertView 790
21.1.2 保存时间值 790
21.1.3 添加图像文件 791
21.2 设计时间差视图控制器 792
21.2.1 建立NSData、UIImageView对象和IBAction方法 792
21.2.2 定义UIAlertView和游戏控件属性 792
21.3 构建扑克游戏控件 795
21.3.1 添加扑克游戏控件 795
21.3.2 设置游戏背景视图检查器 796
21.3.3 设置游戏扑克图像检查器 798
21.3.4 设置游戏透明按钮检查器 799
21.4 小结 802
第22章 综合案例:电子琴 803
22.1 创建音频工具项目 804
22.1.1 设置屏幕横向显示 804
22.1.2 添加背景图像和声音文件 806
22.1.3 添加音频工具框架 807
22.1.4 AudioToolbox框架的作用 808
22.2 定义电子琴的交互方法 809
22.2.1 建立音频文件播放方法和播放动态 809
22.2.2 定义琴键属性值 810
22.3 构建电子琴界面 813
22.3.1 设置电子琴视图背景 813
22.3.2 添加控件 813
22.3.3 设置电子琴背景图检查器 814
22.3.4 设置电子琴键的检查器 816
22.4 小结 821
第23章 综合案例:吃豆人 822
23.1 创建Utility Application图像移动按钮项目 823
23.1.1 添加移动图像和声音文件 824
23.1.2 添加支持动画和声音文件的框架 825
23.2 移动图像操作的视图控制器 826
23.2.1 建立UIImageView、按钮方向操作和音频播放方法 826
23.2.2 定义图像属性值和方向操作交互 827
23.3 在Interface Builder中构建吃豆人主页 830
23.3.1 构建吃豆人图像和背景图像 830
23.3.2 构建吃豆人移动按钮 834
23.4 在Interface Builder中构建吃豆人简介副页 838
23.5 小结 839
第24章 综合案例:打砖块 840
24.1 创建Utility Application项目 841
24.1.1 添加打砖块的图像和声音文件 841
24.1.2 添加框架文件 842
24.1.3 添加UIImageView控制器 843
24.1.4 自定义UIImageView视图检查器 845
24.2 打砖块的MainViewController交互方法 846
24.2.1 建立游戏分数控件、操作交互和音频播放方法 846
24.2.2 定义游戏的操作和属性值 848
24.3 在Interface Builder内构建BoardView 856
24.3.1 添加NSObject 856
24.3.2 设置NSObject身份 857
24.4 在Interface Builder中构建打砖块游戏主页 858
24.5 在Interface Builder中构建打砖块简介副页 867
24.6 小结 868