第1章 iOS平台初探 1
1.1 iOS框架介绍 1
1.1.1 iOS的现状与发展前景 2
1.1.2 iOS框架层次 3
1.1.3 iPhone、iPad与iPod touch开发的联系与区别 4
1.2 其他主流移动操作系统简介 4
1.2.1 Android 4
1.2.2 Windows Mobile与Windows Phone 5
1.3 安装并配置集成开发环境 5
1.3.1 申请加入iOS开发人员计划 6
1.3.2 安装Xcode与iOS SDK 8
1.3.3 其他相关开发工具介绍 10
1.4 配置iOS设备以运行程序 11
1.4.1 生成并安装证书 11
1.4.2 注册设备 14
1.4.3 创建应用程序ID 15
1.4.4 创建并安装描述文件 16
1.5 使用Xcode创建第一个iOS应用程序 17
1.5.1 在Xcode中创建项目 17
1.5.2 熟悉Xcode界面 19
1.5.3 了解项目文件的组织结构 21
1.5.4 编译并在模拟器中运行项目 22
1.5.5 使用Interface Builder丰富程序的界面 22
1.5.6 在iOS设备上运行程序 25
1.5.7 使用iOS模拟器 25
1.6 了解程序执行的具体过程 26
1.6.1 图形界面程序执行的基本流程 26
1.6.2 程序入口 27
1.6.3 应用程序类 29
1.6.4 委托模式 29
1.6.5 应用程序委托类 31
1.6.6 分析程序执行的流程 32
1.7 本章小结 36
1.8 练习题 36
第2章 iOS开发基础知识 38
2.1 Objective-C语言介绍 38
2.2 类 39
2.2.1 类的外部接口与内部实现 39
2.2.2 类的成员变量 41
2.2.3 类的实例方法 42
2.2.4 类的属性 46
2.2.5 类的静态变量与静态方法 52
2.2.6 类的继承与复合 54
2.2.7 类的实例化与初始化 56
2.3 协议 58
2.3.1 声明协议 58
2.3.2 实现协议 58
2.3.3 使用协议限制对象类型与行为 59
2.4 类别 63
2.4.1 声明类别并实现类别方法 63
2.4.2 扩展类的功能 64
2.4.3 拆分类的实现 64
2.5 内存管理 65
2.5.1 通过实际场景了解内存管理 65
2.5.2 NSObject类与保留计数 67
2.5.3 自动释放池 69
2.5.4 内存管理原则 71
2.5.5 属性的附加特性与内存管理 72
2.6 字符串操作 75
2.6.1 创建字符串 75
2.6.2 字符串的各种操作 76
2.7 错误接收与异常处理 80
2.7.1 错误接收 80
2.7.2 异常处理 82
2.8 键值编码 87
2.9 集合类 90
2.9.1 数组与可变数组 90
2.9.2 集合与可变集合 94
2.9.3 字典与可变字典 97
2.10 函数指针与块 101
2.10.1 使用函数指针 101
2.10.2 声明块类型 103
2.10.3 定义和使用块对象 104
2.11 本章小结 111
2.12 练习题 111
第3章 视图与触屏事件 114
3.1 视图 114
3.1.1 视图层次与视图树 114
3.1.2 UIKit坐标系 117
3.1.3 坐标点、尺寸与位置 118
3.1.4 创建视图 119
3.1.5 视图框架、边界与中心 119
3.1.6 视图的显示 122
3.2 事件 124
3.2.1 事件对象 124
3.2.2 触屏对象 126
3.2.3 响应对象 127
3.2.4 案例:验证响应对象链表与点击测试过程 129
3.2.5 多点触屏内部机制 135
3.2.6 案例:验证多点触屏机制 138
3.3 综合案例:图片浏览程序 138
3.4 本章小结 138
3.5 练习题 139
第4章 界面控件与内置视图 140
4.1 界面控件基础 140
4.1.1 控件基本属性 140
4.1.2 目标-行为机制 141
4.2 常用界面控件的使用 143
4.2.1 按钮 144
4.2.2 案例:按钮的使用方法 144
4.2.3 文本框与键盘交互 147
4.2.4 案例:文本框的使用方法 149
4.2.5 开关 155
4.2.6 案例:开关的使用方法 155
4.2.7 滑动调节器 157
4.2.8 案例:滑动调节器的使用方法 158
4.2.9 分页控件 160
4.2.10 案例:分页控件的使用方法 160
4.2.11 分段控件 160
4.3 常用内置视图的使用 161
4.3.1 滚动视图 161
4.3.2 案例:滚动视图的使用 162
4.3.3 进度条 165
4.3.4 任务指示视图 165
4.3.5 警告视图 166
4.3.6 案例:警告视图的使用方法 167
4.3.7 行为列表 167
4.3.8 滚轮选取视图 168
4.3.9 案例:滚轮选取视图的使用方法 169
4.3.10 表格视图 172
4.4 本章小结 173
4.5 练习题 173
第5章 视图控制器 174
5.1 MVC架构模式 174
5.2 视图控制器的作用与分类 175
5.3 基本视图控制器 175
5.3.1 UIViewController类 175
5.3.2 案例:使用视图控制器构建程序界面 178
5.3.3 设备旋转 181
5.3.4 案例:验证设备方位与界面方位 184
5.3.5 案例:设备旋转后的界面重新布局 189
5.4 容器视图控制器 200
5.4.1 标签栏控制器 200
5.4.2 案例:使用标签栏控制器实现视图切换 202
5.4.3 导航栏控制器 208
5.4.4 案例:使用导航栏控制器管理层次化界面 210
5.5 模式视图控制器 211
5.5.1 UIViewController类与模式视图 211
5.5.2 案例:模式视图的显示与关闭 212
5.6 本章小结 217
5.7 练习题 217
第6章 使用开发工具 218
6.1 Interface Builder界面设计器 218
6.1.1 nib文件 218
6.1.2 Interface Builder界面 219
6.1.3 案例:使用IB创建一个简单应用程序 222
6.1.4 案例:添加自定义对象 230
6.1.5 案例:使用Xcode 4简化操作 233
6.2 代码检查器与代码分析器 236
6.2.1 案例:使用代码检查器检查程序错误 236
6.2.2 案例:使用代码分析器检查程序错误 239
6.3 调试器 240
6.3.1 调试窗口界面 240
6.3.2 案例:使用控制台输出语句与调试器找出程序错误 240
6.4 Instruments采样分析器 246
6.4.1 案例:使用Instruments找出内存泄露的代码 246
6.5 本章小结 254
6.6 练习题 255
第7章 基本数据持久化技术 256
7.1 背景知识 256
7.1.1 数据持久化方法简介 256
7.1.2 案例:遍历应用程序的目录与文件 257
7.2 文本文件 260
7.2.1 案例:使用文本文件保存数据 260
7.3 属性列表 270
7.3.1 案例:使用属性列表序列化简单对象 270
7.4 对象图的归档与解档 283
7.4.1 NSCoding协议 283
7.4.2 NSCoder类与不同的归档方式 284
7.4.3 案例:使用键值归档 284
7.4.4 对象图 291
7.4.5 案例:使用条件归档限制对象图的范围 292
7.5 综合案例:商品清单程序 299
7.5.1 创建项目并了解项目结构 299
7.5.2 设置表格视图的数据源 302
7.5.3 单元格的重用与生成 304
7.5.4 保存与恢复程序状态 308
7.5.5 添加详细视图 312
7.5.6 设置表格视图的委托对象 315
7.6 本章小结 319
7.7 练习题 319
第8章 多媒体 321
8.1 音频与视频基础 321
8.1.1 容器与编码 321
8.1.2 音频编码格式介绍 321
8.1.3 采样率与比特率 322
8.1.4 音频工具afconvert与afinfo 323
8.2 音频 323
8.2.1 使用System Audio Services播放声音 324
8.2.2 案例:播放简短音效与实现震动 324
8.2.3 使用Audio Player播放与控制声音 327
8.2.4 案例:播放较长的声音 328
8.2.5 使用Audio Recorder录制声音 330
8.2.6 案例:实现带录音功能的音乐播放机 331
8.2.7 使用Music Player Controller播放媒体库音乐 333
8.2.8 案例:播放媒体库音乐 335
8.3 视频 342
8.3.1 使用Movie Player Controller播放视频 342
8.3.2 案例:实现视频的播放 344
8.3.3 使用Movie Player视图控制器播放视频 347
8.3.4 案例:使用MPMoviePlayerViewController播放视频 347
8.3.5 使用相机进行拍照与摄像 347
8.3.6 案例:将相机拍照与摄像后的内容保存到媒体库中 351
8.4 本章小结 357
8.5 练习题 358
第9章 网络与iCloud云服务 359
9.1 网络数据处理 359
9.1.1 XML数据处理 359
9.1.2 案例:使用NSXMLParser处理XML数据 360
9.1.3 JSON数据处理 365
9.1.4 案例:使用NSJSONSerialization处理JSON数据 366
9.2 创建HTTP连接 369
9.2.1 创建HTTP连接的基本代码结构 369
9.2.2 创建连接请求 369
9.2.3 创建异步与同步连接 370
9.2.4 案例:通过XML与Web Service进行交互 373
9.3 创建Socket连接 388
9.3.1 创建Socket连接的过程 388
9.3.2 案例:使用Socket与服务器进行交互 390
9.4 获取网络连接状态 397
9.4.1 案例:获取网络连接状态 398
9.5 使用iCloud同步数据 402
9.5.1 iCloud简介 402
9.5.2 配置项目以支持iCloud 403
9.5.3 检查是否启用iCloud服务 406
9.5.4 查询云端数据 407
9.5.5 使用UIDocument与云同步 409
9.5.6 案例:实现iCloud文件查询与数据同步 411
9.6 本章小结 422
9.7 练习题 423
第10章 Cocos2d游戏开发入门 424
10.1 Cocos2d简介 424
10.2 安装Cocos2d项目模板 424
10.3 创建第一个Cocos2d项目 425
10.4 坐标系 426
10.5 节点 427
10.5.1 节点初始化 427
10.5.2 节点层次 427
10.5.3 锚点 428
10.5.4 定期更新 430
10.6 场景 430
10.7 图层 431
10.8 精灵 432
10.9 场景树 434
10.10 导演与场景切换 436
10.10.1 场景切换 437
10.10.2 场景切换效果 437
10.11 事件处理 438
10.11.1 触屏事件处理 438
10.11.2 加速度事件处理 440
10.12 动作 443
10.12.1 有限时间动作 444
10.12.2 无限重复动作 446
10.12.3 变速动作 447
10.12.4 跟随动作 447
10.13 文本标签与字体 449
10.14 菜单与菜单项 450
10.15 实现简单的碰撞检测 453
10.16 添加音乐和音效 459
10.17 本章小结 460
10.18 练习题 461
参考文献 462