《iPhone SDK 3开发指南》循序渐进地讲述了基于 iPhone SDK 的应用程序开发的各个方面,涉及到了从编码到调试到性能优化的各个步骤。特别值得称道的是《iPhone SDK 3开发指南》涵盖了最新的 iPhone SDK 3.0 的有关内容。既适合作为了解 iPhone 程序开发的各个方面的参考,也适合作为深入掌握iPhone 程序开发的阶梯教程。
目录
- 第1章 引言 1
- 1.1 本书内容 3
- 1.2 致谢 4
- 第2章 你好,iPhone 7
- 2.1 准备工作 7
- 2.2 创建“Hello iPhone”项目 9
- 2.3 创建一个简单的界面 11
- 2.4 旋转文本——调整UI 13
- 2.5 旋转文本——调整代码 14
- 2.6 代码导航 15
- 2.7 在iPhone上运行程序 16
- 第3章 iPhone开发基础 18
- 3.1 iPhone软件的体系结构 19
- 3.2 用Objective-C编码 19
- 3.3 Cocoa Touch的基础类 21
- 3.4 与Xcode和Interface Builder一起工作 22
- 3.5 设计一个交互应用 23
- 3.6 iPhone应用程序的骨架 30
- 3.7 用委托机制(delegation)来定制行为 33
- 3.8 管理应用程序的内存 35
- 3.9 以属性的方式存取变量 37
- 3.10 外卖:要记住的东西 39
- 第4章 视图控制器 41
- 4.1 实现一个按钮操作 41
- 4.2 建立一个模型 44
- 4.3 为控制器添加插座变量和动作 47
- 4.4 更新UI 49
- 4.5 实现控制器 50
- 4.6 创建新的视图控制器 53
- 4.7 构造UI 56
- 4.8 制作MovieEditorViewController 59
- 4.9 Interface Builder里的editing视图控制器 60
- 第5章 表格视图 62
- 5.1 表格的组成 62
- 5.2 建立基于表格的导航 64
- 5.3 为表格数据建模 65
- 5.4 表格的单元 68
- 5.5 编辑表格 71
- 5.6 用表格导航 73
- 5.7 定制表格视图单元 79
- 5.8 排序表格数据 84
- 第6章 导航 87
- 6.1 邮件导航 87
- 6.2 导航控制器 88
- 6.3 基于导航的应用 89
- 6.4 把视图控制器压进堆栈 91
- 6.5 定制导航栏 93
- 6.6 弹出视图控制器 97
- 第7章 页签条控制器 99
- 7.1 什么时候用页签 99
- 7.2 创建一个页签条控制器 100
- 7.3 页签控制器里的视图控制器 102
- 7.4 多个控制器 107
- 第8章 文件I/O 110
- 8.1 探索文件系统 111
- 8.2 创建我们的项目 113
- 8.3 获取文件属性 119
- 8.4 从文件中读取数据 125
- 8.5 异步文件读取 128
- 8.6 创建和删除文件和目录 132
- 8.7 把数据写入到文件 138
- 8.8 属性列表和NSCoding 141
- 第9章 预置 143
- 9.1 在应用程序中显示一个能翻转的预置视图 143
- 9.2 管理预置 146
- 9.3 改变和更新预置 148
- 9.4 顺路看看:每秒种更新一次时钟标签 152
- 9.5 在系统设置应用程序中使用预置 153
- 9.6 装入在“设置”应用程序中配置好的预置 159
- 第10章 SQLite数据库 162
- 10.1 创建你的数据库 163
- 10.2 创建实例程序 166
- 10.3 把数据库放到设备上 168
- 10.4 在设备上使用数据库 171
- 第11章 Core Data 179
- 11.1 Conference应用程序 180
- 11.2 Core Data栈 182
- 11.3 构建Core Data栈 184
- 11.4 建模 187
- 11.5 Track表格视图 194
- 11.6 获取议题 198
- 11.7 修改议题 199
- 11.8 导航 202
- 第12章 连接互联网 209
- 12.1 在10分钟之内用UIWebView构建一个浏览器 210
- 12.2 从网络读取数据 215
- 12.3 处理HTTP身份认证 219
- 12.4 解析Web Service返回的XML 225
- 12.5 通过你的应用发送邮件 235
- 第13章 点对点网络 239
- 13.1 利用Bonjour来使用特设网络服务 239
- 13.2 Bonjour服务发现 241
- 13.3 Game Kit概述 247
- 13.4 建立一个使用蓝牙网络的游戏 248
- 13.5 建立一个Peer拾取器 249
- 13.6 提供一个Peer拾取器委托 251
- 13.7 网络游戏的逻辑 253
- 13.8 通过GKSession进行通信 255
- 13.9 语音聊天 260
- 第14章 视频播放 262
- 14.1 使用MPMoviePlayerController进行视频播放 262
- 14.2 接收来自影片播放器的通知 267
- 14.3 支持的媒体格式 269
- 第15章 存取iPod库 272
- 15.1 监测iPod的回放 272
- 15.2 控制iPod的播放 281
- 15.3 使用iPod库 283
- 15.4 浏览iPod库 293
- 第16章 播放和录制音频 296
- 16.1 创建一个AVAudioRecorder 296
- 16.2 未压缩的音频格式 300
- 16.3 编码音频格式 304
- 16.4 使用AVAudioRecorder 307
- 16.5 监控录音音量 311
- 16.6 用AVFramework播放音频 316
- 16.7 与音频会话交互 321
- 第17章 Core Audio 324
- 17.1 使用过程式的C API 325
- 17.2 播放系统声音 327
- 17.3 Core Audio概述 333
- 第18章 事件、Multi-Touch及手势 337
- 18.1 事件模型 337
- 18.2 跟踪触摸活动 339
- 18.3 触碰 341
- 18.4 Multi-Touch手势 342
- 第19章 绘制自定义视图 347
- 19.1 绘制模型 347
- 19.2 绘制矢量图 348
- 19.3 路径 349
- 19.4 图形环境 354
- 19.5 重新显示一个视图 355
- 第20章 绘制图像和照片 357
- 20.1 基本的图像绘制 358
- 20.2 定制图片显示 359
- 20.3 图片拾取器 361
- 20.4 捕捉视频 364
- 第21章 Core Animation 366
- 21.1 Core Animation介绍 366
- 21.2 UIView动画 367
- 21.3 层 373
- 21.4 OpenGL ES 375
- 第22章 加速计 379
- 22.1 获取设备方向 380
- 22.2 从UIResponder响应链中获取晃动事件 381
- 22.3 获取原始的加速计数据 382
- 22.4 过滤加速计数据 388
- 第23章 地址簿 395
- 23.1 地址簿UI 395
- 23.2 People拾取器委托 396
- 23.3 创建和配置People拾取器 398
- 23.4 Person控制器 399
- 23.5 增加新的联系人 401
- 第24章 iPhone定位API 405
- 24.1 知道在哪里 405
- 24.2 位置更新 409
- 24.3 指南针 413
- 第25章 Map Kit 416
- 25.1 Contact Mapper(联系人地图) 416
- 25.2 显示一幅地图 417
- 25.3 地图标注 420
- 25.4 选择一个标注 429
- 第26章 应用集成 432
- 26.1 运行别的应用程序 432
- 26.2 成为能被集成的 434
- 第27章 调试 438
- 27.1 理解并修正构建中的错误 439
- 27.2 理解并修正导入/链接错误 441
- 27.3 使用iPhone SDK文档 443
- 27.4 理解并修正Interface Builder错误 446
- 27.5 调试 448
- 27.6 找出重复释放的“Zombie”对象 455
- 第28章 性能调整 460
- 28.1 使用Shark检查性能 461
- 28.2 使用Instruments检查性能 466
- 28.3 用Clang静态分析器检查性能 471
- 第29章 之前和之后 476
- 29.1 正确地开始 477
- 29.2 改善 480
- 29.3 其他特性 481
- 29.4 Beta测试 482
- 29.5 进入商店 483
- 29.6 推广你的应用 484
-
附录A 参考文献 486