标题：iPhone与iPad开发实战
基本信息
作者： (美)Brandon Trebitowski    Christopher Allen  iPhone与iPad开发实战　　译者： 张波 陈宝国 高伟 
丛书名： 图灵程序设计丛书 
出版社：人民邮电出版社 
ISBN：9787115248589
上架时间：2011-3-1
出版日期：2011 年3月
开本：16开
内容简介
《iphone与ipad开发实战》旨在以教程的形式讲解如何使用本地iphone sdk 进行iphone/ipad 开发。首先介绍了objective-c、xcode、interface builder、视图控制器、标准事件和动作模型等基础知识，接着介绍了一些数据访问方法与出色的硬件功能（加速计、gps 和罗盘），然后讨论了媒体、音频、图形、互联网等主题，最后通过实例展示了如何使用game kit 框架、推送通知、map kit 框架和store kit 框架等。
《iphone与ipad开发实战》适合所有iphone 和ipad 开发人员阅读。
摘要
本书旨在以教程的形式讲解如何使用本地iPhone SDK 进行iPhone/iPad 开发。首先介绍了Objective-C、Xcode、Interface Builder、视图控制器、标准事件和动作模型等基础知识，接着介绍了一些数据访问方法与出色的硬件功能（加速计、GPS 和罗盘），然后讨论了媒体、音频、图形、互联网等主题，最后通过实例展示了如何使用Game Kit 框架、推送通知、Map Kit 框架和Store Kit 框架等。
本书适合所有iPhone 和iPad 开发人员阅读。 
前言
开始编写《iPhone开发实战》修订版的时候，Shannon和Christopher手头上正好还有其他项目。于是Manning出版社决定另寻一名作者来完成所需的更新。最后，他们在Twitter上发现了我。 
还在上高三的时候，我就已经开始学习编程，并花费大量时间编写Web应用程序和一些冒傻气的Java游戏。高中毕业后，我进入新墨西哥大学，并在那里获得了计算机科学理学学士学位。 
当苹果公司推出最初的iPhone时，我非常渴望拥有一台。但直到苹果公司将iPhone 3G投入市场，我才攒够钱圆了自己的奢望那时候，我还买不起iPhone。因为大学时已经习惯了阅读Java文档，所以我能从苹果公司的API文档中学到很多东西。 
接手撰写本书的任务后，我很快意识到上一版中的不少章都应该删掉。尽管Web应用是iPhone应用发展前期一个极为重要的组成部分，但它们现在已经无法与本机应用程序抗衡了。因此，我删除了上一版中有关Web开发的那些章，添加了与最新的iPhone SDK特性有关的新内容。 
刚完成此书时，苹果公司发布了其最新设备——iPad。于是Manning出版社和我必须作出选择：要么在现有书稿基础上再奋斗几个月的时间，要么出版一本刚上架就过时的书。幸好我们选择了前者。 
——Brandon Trebitowsk
目录
《iphone与ipad开发实战》 
第1章 iphone与ipad简介 1 
1.1 历史回顾 1 
1.2 人人为我，我为人人：iphone os平台 2 
1.3 核心硬件规范 2 
1.3.1 iphone 2 
1.3.2 ipad 3 
1.3.3 ipod touch 4 
1.3.4 iphone和ipad的输入及输出规范 4 
1.3.5 iphone和ipad网络规范 5 
1.3.6 iphone os浏览器规范 6 
1.3.7 移动web标准 7 
1.3.8 其他硬件特性 7 
1.4 iphone和ipad的独特之处 8 
1.5 理解iphone和ipad触摸式交互 9 
1.6 小结 10 
第2章 objective-c和iphone os sdk 11 
2.1 准备使用sdk 11 
2.1.1 安装sdk 11 
2.1.2 sdk剖析 13 
.2.2 objective-c介绍 14 
2.2.1 概述 14 
2.2.2 消息 15 
2.2.3 类定义 17 
2.2.4 属性 18 
2.2.5 其他编译器指令 20 
2.2.6 类别和协议 20 
2.2.7 objective-c总结 21 
2.3 iphone os介绍 22 
2.3.1 iphone os剖析 22 
2.3.2 iphone os的对象层次结构 23 
2.3.3 窗口和视图 24 
2.4 iphone os的方法 25 
2.4.1 对象创建 25 
2.4.2 内存管理 27 
2.4.3 事件响应 28 
2.4.4 生命周期管理 29 
2.5 小结 30 
第3章 使用xcode 31 
3.1 xcode简介 31 
3.1.1 剖析xcode 31 
3.1.2 在xcode中编译和执行 33 
3.2 在xcode中创建第一个iphone项目：hello, world! 33 
3.2.1 理解main.m 33 
3.2.2 理解应用程序委托 34 
3.2.3 编写“hello, world!” 36 
3.3 在xcode中创建第一个ipad项目： 
hello, world! 38 
3.4 在xcode中创新建类 39 
3.4.1 新类简介 39 
3.4.2 头文件 39 
3.4.3 源代码文件 40 
3.4.4 链接 42 
3.5 xcode的其他功能 42 
3.5.1 使用xcode添加框架 42 
3.5.2 在xcode中使用其他模板 42 
3.5.3 xcode提示和技巧 43 
3.6 小结 44 
第4章 使用interface builder 45 
4.1 interface builder介绍 45 
4.1.1 interface builder剖析 46 
4.1.2 在interface builder中模拟 48 
4.2 在interface builder中创建第一个项目：图片和网页 48 
4.2.1 新建对象 48 
4.2.2 操作图形对象 49 
4.2.3 使用检查器窗口 49 
4.2.4 使用图片 51 
4.3 在interface builder中建立连接 52 
4.3.1 声明iboutlet 52 
4.3.2 连接对象 53 
4.3.3 使用iboutlet编写代码 54 
4.4 其他interface builder功能 55 
4.4.1 建立其他连接 55 
4.4.2 创建外部对象 55 
4.4.3 初始化interface builder对象 56 
4.4.4 访问.xib文件 56 
4.4.5 新建.xib文件 57 
4.5 小结 57 
第5章 创建基本视图控制器 58 
5.1 视图控制器家族 58 
5.2 标准视图控制器 59 
5.2.1 视图控制器剖析 60 
5.2.2 创建视图控制器 60 
5.2.3 创建另一个视图控制器 60 
5.2.4 构建视图控制器界面 61 
5.2.5 使用视图控制器 62 
5.3 表视图控制器 66 
5.3.1 剖析表视图控制器 66 
5.3.2 创建表视图控制器 66 
5.3.3 构建表界面 67 
5.3.4 使用表视图控制器 72 
5.4 小结 73 
第6章 监控事件和动作 74 
6.1 事件简介 74 
6.1.1 响应者链 74 
6.1.2 触摸和事件 76 
6.2 触摸的例子：事件报告程序 77 
6.2.1 在interface builder中构建应用 
程序 78 
6.2.2 为触摸准备视图 79 
6.2.3 控制事件 80 
6.3 其他事件功能 82 
6.3.1 规则化事件 82 
6.3.2 其他事件方法和属性 83 
6.4 动作简介 84 
6.4.1 uicontrol对象 84 
6.4.2 控件事件和动作 84 
6.4.3 使用addtarget:action: 
forcontrolevents:方法 86 
6.5 向应用程序添加按钮 86 
6.5.1 使用addtarget:action: 
forcontrolevents:与按钮 87 
6.5.2 使用ibaction与按钮 87 
6.6 其他动作功能 88 
6.6.1 使用uitextfield接受文本输入 88 
6.6.2 允许使用uislider来选择值 90 
6.6.3 textfield/slider组合 90 
6.6.4 创建动作很容易 92 
6.6.5 使用动作 92 
6.7 通知简介 92 
6.8 小结 93 
第7章 创建高级视图控制器 94 
7.1 标签栏视图控制器 94 
7.1.1 剖析标签栏视图控制器 94 
7.1.2 创建标签栏控制器 95 
7.1.3 构建标签栏界面 97 
7.1.4 使用标签栏控制器 100 
7.2 导航控制器 101 
7.2.1 剖析导航控制器 101 
7.2.2 创建导航控制器 102 
7.2.3 完成导航控制器 102 
7.2.4 使用导航控制器 106 
7.3 使用翻转控制器 108 
7.4 分割视图控制器 110 
7.4.1 创建分割视图控制器 110 
7.4.2 构建分割视图控制器 112 
7.4.3 使用分割视图控制器 115 
7.4.4 为竖向模式和横向模式调整 
界面 116 
7.5 弹出式视图控制器和模式视图控制器 116 
7.5.1 创建弹出式视图控制器 117 
7.5.2 创建模式视图控制器 117 
7.6 小结 118 
第8章 数据：动作、首选项和文件 119 
8.1 接收用户动作 119 
8.2 管理用户首选项 120 
8.2.1 创建自己的首选项 121 
8.2.2 使用系统设置 125 
8.3 打开文件 129 
8.3.1 访问软件包 130 
8.3.2 访问其他目录 131 
8.3.3 操纵文件 131 
8.3.4 filesaver：一个uitextview示例 132 
8.4 小结 135 
第9章 数据：高级技术 136 
9.1 使用sqlite 136 
9.1.1 设置sqlite数据库 137 
9.1.2 访问sqlite 138 
9.1.3 访问sqlite数据库 138 
9.1.4 通过数据库构建导航菜单 139 
9.1.5 本例的扩展 145 
9.2 访问地址簿 145 
9.2.1 框架概述 145 
9.2.2 访问地址簿属性 146 
9.2.3 查询地址簿 147 
9.2.4 使用地址簿ui 149 
9.3 core data简介 153 
9.3.1 关于core data的背景知识 153 
9.3.2 在应用程序中设置core data 154 
9.3.3 初始化core data对象 155 
9.3.4 为数据库添加对象 158 
9.3.5 在core data中提取、更新和删 
除对象 158 
9.4 小结 160 
第10章 定位：加速计、位置和罗盘 161 
10.1 加速计和方向 161 
10.1.1 orientation属性 161 
10.1.2 方向通知 162 
10.2 加速计和移动 162 
10.2.1 访问uiaccelerometer 163 
10.2.2 解析uiacceleration 163 
10.2.3 查看重力 164 
10.2.4 查看移动 166 
10.2.5 识别简单的加速计移动 166 
10.3 加速计和手势 168 
10.4 core location 170 
10.4.1 位置类 171 
10.4.2 使用位置和距离的示例 172 
10.4.3 使用海拔的示例 174 
10.4.4 使用罗盘 177 
10.4.5 core location和互联网 178 
10.5 小结 178 
第11章 媒体：图像和照相机 179 
11.1 图像介绍 179 
11.1.1 加载uiimage 180 
11.1.2 绘制uiimageview 180 
11.1.3 在uikit中修改图像 181 
11.2 利用core graphics绘制简单图像 182 
11.3 访问照片 183 
11.3.1 使用图像选取器 183 
11.3.2 拍照 184 
11.3.3 保存到相册 185 
11.4 拼合：一个图像例子 185 
11.4.1 拼合视图控制器 185 
11.4.2 拼合临时图像视图 189 
11.4.3 拼合视图 190 
11.4.4 扩展这个例子 191 
11.5 小结 191 
第12章 媒体：音频和录音 192 
12.1 播放ipod库中的音频 192 
12.1.1 从ipod媒体库中检索音频 
条目 192 
12.1.2 获取mpmediaitem的信息 194 
12.1.3 使用mpmusicplayercontroller播放媒体条目 194 
12.1.4 示例：创建一个简单的媒体 
播放器应用程序 196 
12.2 录制音频 198 
12.2.1 初始化音频录音器 198 
12.2.2 控制音频录音器 199 
12.2.3 响应avaudiorecorder事件 200 
12.3 手动播放声音 201 
12.3.1 初始化avaudio player 201 
12.3.2 avaudioplayer delegate 202 
12.3.3 控制avaudioplayer 202 
12.4 示例：创建一个简单的音频 
录制/播放应用程序 203 
12.4.1 创建一个基于视图的应用 
程序 204 
12.4.2 添加所需的框架 204 
12.4.3 构建ibaction 204 
12.4.4 创建界面 204 
12.4.5 设置音频录音器并实现 
ibaction操作 205 
12.5 录制、播放和访问视频 206 
12.6 小结 207 
第13章 图形：quartz、core animation 
和opengl 209 
13.1 quartz 2d简介 209 
13.2 quartz上下文 210 
13.2.1 在uiview上绘制图形 211 
13.2.2 在位图上绘制图形 212 
13.3 绘制路径 213 
13.3.1 结束路径 214 
13.3.2 创建可重用路径 214 
13.3.3 绘制矩形 215 
13.4 设置图形状态 216 
13.4.1 设置颜色 216 
13.4.2 变换 217 
13.4.3 设置裁剪路径 219 
13.4.4 其他设置 220 
13.4.5 管理状态 220 
13.5 quartz中的高级绘图功能 220 
13.5.1 绘制渐变 221 
13.5.2 绘制图像 222 
13.5.3 绘制文字 223 
13.5.4 未介绍的内容 224 
13.6 示例：在图片上绘图 224 
13.6.1 photodraw视图控制器 225 
13.6.2 photodraw视图 226 
13.6.3 扩展示例 228 
13.7 core animation简介 229 
13.7.1 core animation基础 230 
13.7.2 core animation入门 230 
13.7.3 绘制简单的隐式动画 230 
13.7.4 绘制简单的显式动画 231 
13.8 opengl简介 232 
13.9 小结 232 
第14章 web：web视图和互联网协议 234 
14.1 互联网的层次结构 234 
14.2 低层次联网 234 
14.3 使用url 236 
14.3.1 创建nsurl 236 
14.3.2 构建nsurlrequest 237 
14.3.3 手动操作html数据 238 
14.4 使用uiwebview 238 
14.4.1 调用web视图 239 
14.4.2 管理web视图委托 239 
14.4.3 缩略图：一个web视图例子 240 
14.5 解析xml 242 
14.5.1 启动nsxmlparser 242 
14.5.2 充当委托 243 
14.5.3 构建示例rss阅读器 244 
14.5.4 海拔高度重读：一个core location示例 248 
14.6 提交给web 250 
14.6.1 手动提交 250 
14.6.2 提交表单 251 
14.7 访问社交网络 252 
14.7.1 使用web协议 252 
14.7.2 使用touchjson 253 
14.8 小结 255 
第15章 使用game kit进行p2p连接 256 
15.1 game kit概述 256 
15.2 使用对等点选取器创建p2p应用程序 257 
15.2.1 使用苹果公司的内置对等点 
选取器 257 
15.2.2 实现gksession delegate 
方法 260 
15.2.3 在对等点之间发送和接收 
数据 261 
15.3 示例：创建一个多人乒乓球游戏 263 
15.3.1 启动gktennis项目 264 
15.3.2 创建头文件 264 
15.3.3 创建乒乓球游戏界面 265 
15.3.4 游戏初始化 266 
15.3.5 建立对等点选取器并进行连接 267 
15.3.6 实现send和receive方法 268 
15.3.7 游戏循环 270 
15.3.8 用户交互 273 
15.4 小结 274 
第16章 推送通知服务 275 
16.1 什么是推送通知 275 
16.2 苹果公司的推送通知系统概述 276 
16.3 准备在应用程序中使用推送通知服务 277 
16.3.1 设置应用程序证书 278 
16.3.2 建立供应配置文件 279 
16.3.3 处理推送通知的代码 279 
16.3.4 准备音频文件 281 
16.4 使用php创建一个推送通知提供程序 281 
16.4.1 创建ssl证书 282 
16.4.2 实现php推送通知提供程序 283 
16.5 小结 284 
第17章 map kit框架 285 
17.1 map kit概述 285 
17.2 向应用程序添加地图 285 
17.2.1 使用interface builder添加地图 285 
17.2.2 用编程方式添加地图 287 
17.2.3 控制地图 287 
17.3 翻译地理编码 289 
17.4 标注地图 290 
17.4.1 添加基本地图标注 291 
17.4.2 添加自定义地图标注 292 
17.5 小结 296 
第18章 使用store kit实现应用内购买 297 
18.1 建立沙盒测试环境 297 
18.1.1 创建itunes测试用户 298 
18.1.2 添加产品 299 
18.2 创建一个简单的商店界面 301 
18.3 小结 309 
第19章 iphone sdk增强功能 311 
19.1 自定义键盘附件 311 
19.1.1 扩展uitextfield 312 
19.1.2 实现自定义uitext field 314 
19.1.3 自定义键盘 314 
19.2 继续：iphone 4.0 sdk 316 
19.2.1 多任务 316 
19.2.2 用户体验增强功能 317 
19.2.3 多媒体框架增强功能 317 
19.2.4 game center 317 
19.3 小结 318 
附录a iphone os类参考 319 
附录b 外部资源和参考资料 322 
附录c 发布sdk程序 324 
附录d 针对ipad更新当前应用程序 327