标题：iOS 4实战：iPhone与iPad应用开发
基本信息
原书名：iOS 4 in Action
原出版社：Manning Publications 
作者：(美)Jocelyn Harrington   Brandon Trbitowski   Christopher Allen   Shannon Appelcline  
译者：袁国忠  
出版社：人民邮电出版社 
ISBN：9787115275172
出版日期：2012 年4月 
开本：16开 
页码：422 
版次：1-1
内容简介
《ios 4实战：iphone与ipad应用开发》是针对ios sdk 4.3编写的实用指南，介绍了从设置开发环境到开发完美商业ios应用程序的整个过程，并提供了丰富的ipad和iphone应用程序示例和解决方案。
全书包括22章和4个附录，涵盖开发环境设置、objective-c、xcode、视图控制器、事件和操作、数据输入和存储、多媒体、定位、对等通信、地图、程序内购买、iad、本地和推送通知、多任务等多个主题。
《ios 4实战：iphone与ipad应用开发》由浅入深，语言简洁，示例丰富，可帮助读者迅速掌握开发ios应用程序所需的基本知识，既适合没有任何编程经验的新手阅读，又可供有志于从事ios开发的人员参考。 
目录
《ios 4实战：iphone与ipad应用开发》 
第1章　ios 4简介　1 
1.1　人人为我，我为人人：ios平台　1 
1.2　理解iphone和ipad的触摸式交互　2 
1.3　为使用sdk做准备　4 
1.3.1　安装sdk　4 
1.3.2　剖析sdk　5 
1.4　ios简介　7 
1.4.1　剖析ios　7 
1.4.2　ios的对象层次结构　8 
1.4.3　窗口和视图　9 
1.5　ios方法　10 
1.5.1　创建对象　10 
1.5.2　内存管理　11 
1.5.3　事件响应　13 
1.5.4　生命周期管理　14 
1.6　如何将想法变成应用程序　15 
1.6.1　一览表　15 
1.6.2　您的应用程序属于哪一类　15 
1.6.3　利用应用程序赚钱　17 
.1.7　小结　17 
第2章　学习objective-c　18 
2.1　objective-c简介　18 
2.2　消息　19 
2.2.1　带参数的消息　20 
2.2.2　嵌套的消息　20 
2.2.3　消息接收方　21 
2.3　类定义　21 
2.3.1　接口　22 
2.3.2　实现　23 
2.3.3　对象实例化　23 
2.4　属性　23 
2.4.1　属性的用途　24 
2.4.2　设置属性　24 
2.4.3　使用存取器　25 
2.4.4　句点语法　25 
2.4.5　属性的复杂度　25 
2.5　@编译指令　26 
2.6　类别和协议　26 
2.6.1　类别　26 
2.6.2　协议　26 
2.7　objective-c总结　27 
2.8　小结　28 
第3章　使用xcode 4　29 
3.1　xcode 4简介　29 
3.2　使用xcode 4创建应用程序helloworld　30 
3.2.1　新建项目　30 
3.2.2　熟悉工作区窗口　33 
3.3　详细查看导航区中的文件　34 
3.3.1　文件夹helloworld　34 
3.3.2　文件夹frameworks和product　38 
3.3.3　在xcode中生成并运行应用程序　38 
3.3.4　为应用程序helloworld编写代码　39 
3.4　在xcode 4中使用interface builder　42 
3.4.1　剖析interface builder　42 
3.4.2　创建应用程序applestock　45 
3.5　小结　54 
第4章　xcode与调试　55 
4.1　在xcode中创建新类　55 
4.1.1　创建新类　56 
4.1.2　头文件　57 
4.1.3　源代码文件　58 
4.1.4　使用新创建的类　60 
4.2　使用interface builder创建对象　61 
4.2.1　创建新的nib文件　61 
4.2.2　初始化interface builder对象　62 
4.2.3　访问.xib文件　62 
4.2.4　更多xcode使用技巧　63 
4.3　调试器和instruments　64 
4.3.1　fix-it功能　64 
4.3.2　分析　65 
4.3.3　调试器要点　66 
4.3.4　在xcode中运行instruments　67 
4.4　小结　69 
第5章　基本视图控制器　71 
5.1　视图控制器家族　72 
5.2　标准视图控制器　73 
5.2.1　剖析视图控制器　73 
5.2.2　创建视图控制器　73 
5.2.3　再创建一个视图控制器　74 
5.2.4　创建视图控制器界面　74 
5.2.5　使用视图控制器　76 
5.3　表视图控制器　79 
5.3.1　剖析表视图控制器　80 
5.3.2　创建表视图控制器　80 
5.3.3　创建表界面　81 
5.3.4　使用表视图控制器　86 
5.4　小结　87 
第6章　监视事件和操作　88 
6.1　事件简介　88 
6.1.1　响应者链　89 
6.1.2　触摸和事件　90 
6.2　触摸示例：事件报告器　92 
6.2.1　在interface builder中创建对象　92 
6.2.2　为捕获触摸事件准备视图　94 
6.2.3　控制事件　95 
6.3　其他事件功能　97 
6.3.1　调控事件　97 
6.3.2　其他事件方法和属性　98 
6.4　操作简介　99 
6.4.1　uicontrol对象　99 
6.4.2　控件事件和操作　99 
6.4.3　使用addtarget:action:for controlevents:　101 
6.5　在应用程序中添加按钮　101 
6.5.1　使用addtarget:action:for controlevents:　102 
6.5.2　使用ibaction　103 
6.6　其他操作功能　104 
6.6.1　使用uitextfield接受文本输入　104 
6.6.2　使用uislider让用户选择值　105 
6.6.3　结合使用textfield和slider　106 
6.6.4　轻松使用操作　108 
6.6.5　使用操作　108 
6.7　通知简介　108 
6.8　小结　109 
第7章　高级视图控制器　110 
7.1　选项卡栏视图控制器　110 
7.1.1　剖析选项卡栏视图控制器　111 
7.1.2　创建选项卡栏视图控制器　111 
7.1.3　创建选项卡栏界面　113 
7.1.4　使用选项卡栏控制器　117 
7.2　导航控制器　117 
7.2.1　剖析导航控制器　118 
7.2.2　创建导航控制器　119 
7.2.3　完善导航控制器　120 
7.2.4　使用导航控制器　123 
7.3　使用翻页控制器　125 
7.4　分割视图控制器　127 
7.4.1　创建分割视图控制器　127 
7.4.2　设置分割视图控制器　129 
7.4.3　使用分割视图控制器　132 
7.4.4　调整界面使其适合纵向和横向模式　133 
7.5　弹出框和模态视图控制器　134 
7.5.1　创建弹出框视图控制器　134 
7.5.2　创建模态视图控制器　136 
7.6　在通用应用程序中组合使用不同类型的视图控制器　136 
7.6.1　设计可在iphone和ipad上运行的通用应用程序　136 
7.6.2　合并视图控制器　137 
7.7　小结　138 
第8章　数据：操作、首选项和文件　139 
8.1　接受用户数据　140 
8.2　维护用户首选项　141 
8.2.1　创建自己的首选项　141 
8.2.2　使用系统设置　146 
8.3　打开文件　149 
8.3.1　访问bundle　150 
8.3.2　访问其他目录　151 
8.3.3　操纵文件　152 
8.3.4　filesaver：一个uitextview示例　153 
8.4　小结　155 
第9章　数据：高级技术　157 
9.1　使用sqlite　158 
9.1.1　搭建sqlite数据库　158 
9.1.2　访问sqlite　160 
9.1.3　访问sqlite数据库　160 
9.1.4　使用数据库创建导航菜单　161 
9.1.5　扩展这个示例　167 
9.2　访问地址簿　167 
9.2.1　地址簿框架概述　167 
9.2.2　访问地址簿的属性　168 
9.2.3　查询地址簿　169 
9.2.4　使用address book ui　171 
9.3　core data简介　175 
9.3.1　core data背景知识　175 
9.3.2　在应用程序中设置core data　176 
9.3.3　初始化core data对象　178 
9.3.4　将对象加入数据库　180 
9.3.5　使用core data取回、更新和删除对象　181 
9.4　小结　182 
第10章　定位：加速计、位置和指南针　183 
10.1　加速计和朝向　183 
10.1.1　属性orientation　184 
10.1.2　朝向通知　184 
10.2　加速计和移动　185 
10.2.1　访问uiaccelerometer　185 
10.2.2　对uiacceleration进行分析　186 
10.2.3　检查重力　186 
10.2.4　检查移动　188 
10.2.5　识别简单移动　189 
10.3　加速计和手势　191 
10.3.1　使用加速计　191 
10.3.2　手势识别器　193 
10.4　深入探讨core location　194 
10.4.1　位置类　195 
10.4.2　确定位置和距离的示例　196 
10.4.3　确定海拔高度的示例　198 
10.4.4　使用指南针　201 
10.4.5　获取指南针提供的数据　202 
10.4.6　core location和网络　202 
10.5　小结　203 
第11章　多媒体：图像和相机　204 
11.1　图像简介　204 
11.1.1　加载uiimage　205 
11.1.2　绘制uiimageview　205 
11.1.3　修改图像　207 
11.2　使用core graphics绘制简单图像　207 
11.3　访问照片　208 
11.3.1　使用图像选择器　209 
11.3.2　拍摄照片　209 
11.3.3　保存到相册　210 
11.4　collage：一个图像示例　210 
11.4.1　collageview controller　211 
11.4.2　tempimageview　214 
11.4.3　collageview　215 
11.4.4　进一步探索该示例程序　216 
11.5　打印图像　216 
11.5.1　打印流程　217 
11.5.2　模拟打印　217 
11.5.3　创建一个打印图像的应用程序　218 
11.5.4　在模拟器上启动应用程序iprint　220 
11.6　小结　221 
第12章　多媒体：音频及其录制　222 
12.1　播放ipod库中的音频　222 
12.1.1　从ipod库获取音频　223 
12.1.2　获取有关mpmediaitem的信息　224 
12.1.3　使用mpmusicplayer controller播放多媒体　225 
12.1.4　创建一个简单的多媒体播放器　226 
12.2　录制音频　229 
12.2.1　初始化录音器　229 
12.2.2　控制录音器　230 
12.2.3　响应avaudiorecorder事件　230 
12.3　播放声音　231 
12.3.1　初始化avaudioplayer　232 
12.3.2　avaudioplayerdelegate　232 
12.3.3　控制avaudioplayer　233 
12.4　创建一个简单的音频录制/播放应用程序　234 
12.4.1　使用模板view-based application创建一个项目　234 
12.4.2　添加所需的框架　234 
12.4.3　创建操作　234 
12.4.4　创建界面　235 
12.4.5　设置录音器并实现操作　235 
12.5　拍摄、播放和访问视频　237 
12.6　小结　238 
第13章　图形：quartz、core animation和opengl　239 
13.1　quartz　2d简介　240 
13.2　quartz上下文　240 
13.2.1　绘制到uiview　242 
13.2.2　绘制到位图　242 
13.3　绘制路径　243 
13.3.1　终止路径　244 
13.3.2　绘制矩形　246 
13.4　设置图形状态　246 
13.4.1　设置颜色　247 
13.4.2　变换　247 
13.4.3　设置剪切路径　249 
13.4.4　其他设置　250 
13.4.5　管理状态　251 
13.5　quartz高级绘画技术　251 
13.5.1　绘制渐变　251 
13.5.2　绘制图像　253 
13.5.3　绘制文本　254 
13.5.4　未涉及的主题　255 
13.6　一个在图片上绘画的示例　255 
13.6.1　视图控制器photodraw　256 
13.6.2　视图drawview　257 
13.6.3　扩展该示例　259 
13.7　core animation简介　259 
13.7.1　core animation基础　260 
13.7.2　为使用core animation做准备　261 
13.7.3　创建简单的隐式动画　261 
13.7.4　创建简单的显式动画　262 
13.8　opengl简介　263 
13.9　小结　264 
第14章　web视图和网络协议　265 
14.1　网络协议层次结构　265 
14.2　底层联网技术　266 
14.3　使用url　267 
14.3.1　创建nsurl　267 
14.3.2　创建nsurl request　268 
14.3.3　手工操纵html数据　269 
14.4　使用uiwebview　269 
14.4.1　填充web视图　270 
14.4.2　管理web视图委托　271 
14.4.3　一个web视图示例　271 
14.5　解析xml　273 
14.5.1　使用nsxmlparser　274 
14.5.2　充当委托　274 
14.5.3　创建一个rss阅读器　275 
14.5.4　一个获取海拔高度的core location示例　279 
14.6　以post方式请求网页　281 
14.6.1　手工发出post请求　281 
14.6.2　提交表单　282 
14.7　访问社交网络　283 
14.7.1　使用web协议　284 
14.7.2　使用touchjson　284 
14.8　小结　286 
第15章　使用game kit建立对等连接　287 
15.1　game kit概述　287 
15.2　使用对等体选择器创建对等应用程序　288 
15.2.1　使用apple的内置对等体选择器　288 
15.2.2　实现gksessiondelegate定义的方法　291 
15.2.3　在对等体之间收发数据　292 
15.3　创建一个多玩家乒乓球游戏　294 
15.3.1　创建项目　295 
15.3.2　创建头文件　295 
15.3.3　创建界面　296 
15.3.4　初始化游戏　297 
15.3.5　设置对等体选择器并建立连接　298 
15.3.6　实现收发数据的方法　299 
15.3.7　游戏循环　301 
15.3.8　用户交互　303 
15.4　小结　305 
第16章　在iphone和ipad上使用event kit　306 
16.1　event kit概述　307 
16.1.1　将event kit框架加入项目　307 
16.1.2　event kit类　308 
16.2　以编程方式在日历中添加事项　309 
16.2.1　在应用程序birthday中添加所需的框架　310 
16.2.2　在日历中加入事项　310 
16.3　使用事项编辑视图控制器创建事项　311 
16.4　取回事项　314 
16.4.1　使用谓词取回事项　314 
16.4.2　使用事项编辑视图控制器显示事项　315 
16.5　使用gcd取回事项　317 
16.5.1　grand central dispatch概述　317 
16.5.2　使用gcd取回事项　318 
16.6　小结　319 
第17章　本地通知服务和推送通知服务　320 
17.1　本地通知和推送通知是什么　320 
17.2　实现本地通知　322 
17.3　apple推送通知系统概述　325 
17.4　为使用推送通知做准备　326 
17.4.1　创建证书　326 
17.4.2　创建供应配置文件　327 
17.4.3　处理推送通知的代码　328 
17.4.4　准备音频文件　330 
17.5　使用php创建推送通知提供器　330 
17.5.1　创建ssl证书　331 
17.5.2　实现php推送通知提供器　332 
17.6　小结　333 
第18章　框架map kit　335 
18.1　在应用程序中添加地图视图　335 
18.1.1　使用interface builder添加地图　336 
18.1.2　以编程方式添加地图视图　337 
18.1.3　控制地图　337 
18.2　反向地理编码　340 
18.3　标注地图　342 
18.3.1　添加基本的地图标注　342 
18.3.2　添加自定义地图标注　344 
18.4　小结　348 
第19章　使用store kit实现程序内购买　349 
19.1　设置沙箱测试环境　349 
19.1.1　创建itunes测试用户　350 
19.1.2　添加商品　351 
19.2　创建简单的商店界面　353 
19.2.1　创建演示程序　353 
19.2.2　添加商店界面　354 
19.2.3　创建壁纸商品　356 
19.2.4　store kit支付　358 
19.3　小结　361 
第20章　利用iad赚钱　363 
20.1　在应用程序中添加横幅广告　363 
20.1.1　创建一个包含横幅广告视图的简单应用程序　364 
20.1.2　添加横幅广告视图　365 
20.2　同时支持横向和纵向模式　367 
20.3　如何处理广告下载错误　370 
20.3.1　将委托添加到adbannerview的视图控制器中　370 
20.3.2　模拟事件处理　371 
20.4　在应用程序中显示真实广告　373 
20.5　小结　375 
第21章　多任务简介　376 
21.1　多任务概述　377 
21.1.1　应用程序的生命周期　378 
21.1.2　如何启用多任务　380 
21.2　后台状态　380 
21.2.1　理解后台状态　381 
21.2.2　禁止进入后台状态　382 
21.3　使用快速应用程序切换　382 
21.3.1　创建一个支持快速应用程序切换的应用程序　382 
21.3.2　在视图控制器中更新用户界面　383 
21.4　在后台完成任务　386 
21.4.1　任务完成api　386 
21.4.2　在后台完成任务　386 
21.5　在后台监视位置变更　388 
21.5.1　后台位置服务概述　389 
21.5.2　监视重大位置变更　389 
21.5.3　监视基于区域的位置变更　390 
21.6　小结　391 
第22章　深入探讨多任务　392 
22.1　使用位置监视服务　393 
22.1.1　在应用程序恢复运行时更新用户界面　393 
22.1.2　启用重大位置变更服务　394 
22.2　使用框架audio toolbox创建音频播放应用程序　396 
22.3　启用后台音频播放　402 
22.3.1　在文件info.plist中添加uibackgroundmodes键　403 
22.3.2　处理遥控事件　404 
22.4　创建后台播放音频的应用程序　405 
22.5　小结　406 
附录a　ios类参考　407 
a.1　框架uikit中的类　407 
a.2　框架foundation中的类　408 
a.3　其他类　409 
附录b　外部资源和参考资料　410 
附录c　发布应用程序　412 
c.1　向apple注册　412 
c.2　在设备上运行　412 
c.3　为通过app store发布做准备　413 
附录d　让应用程序能在ipad上运行　415 
d.1　配置xcode 415 
d.2　修改info.plist以支持多种朝向　417 
d.3　添加ipad特有的界面元素　417 
d.4　修改视图以用于ipad　418 
d.5　支持多种朝向　421