前言 1
第1章使用对象 9
1.0概述 9
1.1实现与使用自定义对象 9
1.2分配与初始化对象 13
1.3在一个对象内定义两个或多个同名方法 15
1.4定义与访问属性 18
1.5手动方式管理属性 20
1.6重用代码块 23
1.7对象交互 26
1.8动态调用对象的选择器 32
1.9使用iOS SDK来管理内存 34
1.10管理无类型对象 35
第2章实现控制器与视图 37
2.0概述 37
2.1获取及使用应用委托 37
2.2管理应用的视图 39
2.3创建应用图形化用户界面 41
2.4在运行时设置视图可用 43
2.5在应用的图形化界面中使用视图 44
2.6管理主-细节视图 46
2.7管理多视图 53
2.8在图形用户界面中融合与使用模型 55
2.9实现导航条 59
2.10从一个视图切换到另一个视图 65
2.11设置导航条的标题 67
2.12显示图片作为导航条的标题 67
2.13在导航条上创建与管理按键 68
2.14从导航控制器中移除一个视图 74
2.15操作导航控制器的视图控制器数组 74
2.16在应用中使用制表栏 76
2.17在iPad用户界面元素上弹出附加信息 78
第3章构建与使用表格视图 90
3.0概述 90
3.1使用Interface Builder来创建表格视图 90
3.2通过编程创建表格视图 92
3.3通过Interface Builder赋予表格视图事件处理器 93
3.4通过Xcode赋给表格视图事件处理器 95
3.5为表格视图填充数据 97
3.6接收与处理表格视图事件 101
3.7在表格视图中使用不同类型的附件 103
3.8创建自定义的表格视图附件 105
3.9自定义表格视图内容的外观 108
3.10显示层次化数据 112
3.11使用表格视图时内存的高效管理 113
3.12在表格视图中编辑与移动数据 116
3.13滑动删除 126
3.14数据分组 129
第4章定位与地图类 141
4.0概述 141
4.1使用Interface Builder创建地图 143
4.2使用代码来创建一个地图 143
4.3处理地图事件 146
4.4设备精确定位 147
4.5在地图视图上显示内置的指示 151
4.6在地图视图上显示不同颜色的指示 154
4.7在地图上创建与显示自定义指示 160
4.8基于空间定位来获得有意义的地址 162
4.9由有意义的地址来获得空间定位 164
第5章实现手势识别类 171
5.0概述 171
5.1检测滑动手势 173
5.2旋转手势的应答 175
5.3检测拖动及拖拉手势 183
5.4检测长按手势 185
5.5响应点击手势 188
5.6响应挤捏手势 191
第6章网络与XML 194
6.0概述 194
6.1打开及读取本地XML文件 194
6.2将XML文件解析成对象 201
6.3同步下载文件 210
6.4异步下载文件 211
6.5读取并解析远程XML文件 214
6.6在内存中缓存文件 224
6.7在磁盘上缓存文件 228
第7章操作、线程与定时器 246
7.0概述 246
7.1同步运行任务 248
7.2以异步的方式运行任务 256
7.3创建具有依赖关系的任务 263
7.4在延迟之后执行任务 266
7.5执行周期性任务 267
7.6高效的执行周期性任务 272
7.7隐式地初始化线程 277
7.8退出线程与定时器 279
7.9避免线程中的内存泄露 281
第8章音频和视频 287
8.0概述 287
8.1播放音频文件 287
8.2音频文件播放期间处理中断 291
8.3录制音频文件 292
8.4录制音频文件时处理中断 299
8.5在播放其他声音时播放音频 300
8.6播放视频文件 304
8.7从视频文件中异步捕捉缩略图 308
8.8响应用户请求访问iPod库 312
第9章地址簿 320
9.0概述 320
9.1访问地址簿 322
9.2在地址簿中检索所有人 323
9.3检索地址簿条目属性 325
9.4在用户地址簿中插入联系人条目 328
9.5在地址簿数据库中插入组条目 331
9.6将联系人加入到联系组中 333
9.7从地址簿中查询 336
9.8检索和设置联系人地址簿图片 341
第10章摄像头和照片库 346
10.0概述 346
10.1检测与观察摄像头 348
10.2使用摄像头拍照 353
10.3用摄像头拍摄视频 357
10.4在照片库中存储照片 360
10.5在照片库中存储视频 363
10.6从照片库中检索照片和视频 365
10.7从资源库中检索资源 367
10.8在iOS设备上编辑视频 376
第11章多任务 384
11.0概述 384
11.1检测多任务的可用性 386
11.2在后台完成一个长时间运行的任务 387
11.3在后台接收本地通知 391
11.4在后台播放音频 398
11.5在后台处理位置变化 402
11.6多任务iOS应用程序状态的保存与加载 407
11.7在后台处理网络连接 412
11.8处理发送给唤醒应用程序的通知 417
11.9在后台处理语言环境的变化 420
11.10响应应用设置变化 422
11.11选择退出后台执行 425
第12章核心数据 427
12.0概述 427
12.1使用Xcode创建Core Data模型 430
12.2创建并使用核心数据模型类 432
12.3使用Core Data创建和保存数据 435
12.4使用Core Data加载数据 437
12.5使用Core Data删除数据 440
12.6使用Core Data排列数据 458
12.7加速表视图中数据的访问 461
12.8用Core Data实现联系 472
第13章事件工具包 478
13.0概述 478
13.1检索日历列表 481
13.2向日历中添加事件 483
13.3访问日历内容 486
13.4从日历中删除事件 490
13.5向日历中添加重复出现的事件 502
13.6检索事件的参与者 506
13.7在日历中添加闹铃 511
13.8处理事件的更改通知 513
13.9显示事件视图控制器 517
13.10显示事件编辑视图控制器 522
第14章图形绘制 527
14.0概述 527
14.1在图形环境中绘制基本图形 528
14.2在图形环境下绘制路径 531
14.3在图形环境中绘制图像 536
14.4屏幕截图 539
14.5使用核心图形绘制文本 544
第15章核心运动 547
15.0概述 547
15.1检测加速器的可用性 548
15.2检测旋转装置的可用性 550
15.3检索加速器数据 552
15.4检测iOS设备的震动 557
15.5检索回旋装置数据 563