第1章为开发准备好系统和iPad 1
1.1欢迎进入iPhoneOS平台 1
1.1.1显示屏和图形 1
1.1.2应用程序资源约束 2
1.1.3连接性 3
1.1.4输入和反馈 3
1.2成为iPad开发人员 3
1.2.1加入Apple开发人员计划 4
1.2.2安装iPhoneOS开发工具 6
1.3创建开发供应配置文件 7
1.3.1什么是开发供应配置文件 7
1.3.2生成并安装开发供应配置文件 7
1.3.3使用iPad应用程序测试配置文件 15
1.4开发技术概述 16
1.4.1Apple开发套件 16
1.4.2ObjectiveC 16
1.4.3CoCoaTouch 16
1.4.4模型视图控制器 17
1.5总结 17
1.6问与答 17
1.7作业 17
1.7.1测验 17
1.7.2答案 18
1.7.3练习 18
第2章Xcode和Phone模拟器简介 19
2.1使用Xcode 19
2.1.1创建和管理项目 20
2.1.2删除文件和资源 24
2.1.3编辑和导航代码 24
2.1.4生成应用程序 28
2.1.5项目属性 30
2.2使用iPhone模拟器 32
2.2.1在模拟器中启动应用程序 33
2.2.2模拟多点触摸事件 33
2.2.3旋转模拟的iPad 34
2.2.4模拟其他情况 34
2.3进一步探索 35
2.4总结 35
2.5问与答 36
2.6作业 36
2.6.1验 36
2.6.2答案 36
2.6.3练习 36
第3章探索Apple平台语言ObjectiveC 37
3.1面向对象编程和ObjectiveC 37
3.1.1什么是面向对象编程? 38
3.1.2面向对象编程术语 39
3.1.3什么是ObjectiveC? 40
3.2探索ObjectiveC文件结构 40
3.2.1头文件/接口文件 41
3.2.2实现文件 44
3.2.3自动生成的结构 45
3.3ObjectiveC编程基础 45
3.3.1声明变量 46
3.3.2分配、初始化和释放对象 47
3.3.3使用方法及发送消息 48
3.3.4表达式和决策 49
3.4内存管理 52
3.4.1释放对象 52
3.4.2使用autorelee方法 53
3.4.3保留对象 53
3.4.4在dealloc中释放实例变量 53
3.4.5释放规则 54
3.5进一步探索 54
3.6总结 54
3.7问与答 55
3.8作业 55
3.8.1测验 55
3.8.2答案 55
3.8.3练习 56
第4章CocoaTouch内幕 57
4.1CocoaTouch是什么? 57
4.1.1冷静面对大量的功能 58
4.1.2年轻而成熟 58
4.2探索iPhoneOS技术层 59
4.2.1CocoaTouch层 59
4.2.2多媒体层 60
4.2.3核心服务层 61
4.2.4核心OS层 61
4.3跟踪iPad应用程序的生命周期 62
4.4Cocoa基础 63
4.4.1核心应用程序类 63
4.4.2数据类型类 65
4.4.3界面类 67
4.5使用Xcode探索iPhoneOS框架 69
4.5.1Xcode文档 69
4.5.2快速帮助 71
4.6总结 72
4.7问与答 72
4.8作业 72
4.8.1测验 72
4.8.2答案 73
4.8.3练习 73
第5章探索lnterfaceBuider 75
5.1了解InterfaceBuilder 75
5.1.1InterfaceBuilder采用的方法 76
5.1.2剖析InterfaceBuilderXIB文件 76
5.2创建用户界面 79
5.2.1对象库 79
5.2.2布局工具 80
5.3定制界面外观 82
5.3.1使用属性检查器 83
5.3.2设置辅助功能属性 84
5.3.3测试界面 85
5.4连接到代码 86
5.4.1在Xcode中启动InterfaceBuilder 86
5.4.2实现概述 87
5.4.3输出口和操作 88
5.4.4对象身份 91
5.5进一步探索 91
5.6总结 92
5.7问与答 92
5.8作业 93
5.8.1测验 93
5.8.2答案 93
5.8.3练习 93
第6章模型-视图-控制器应用程序设计 95
6.1了解设计模式模型视图控制器 95
6.1.1制作意大利面条 96
6.1.2使用MVC将应用程序设计结构化 96
6.2Xcode和InterfaceBuilder如何实现MVC 97
6.2.1视图 97
6.2.2视图控制器 97
6.2.3数据模型 99
6.3使用模板ViewBasedApplication 99
6.3.1实现概述 100
6.3.2创建项目 100
6.3.3在视图控制器中创建输出口和操作 103
6.3.4创建视图 104
6.3.5实现视图控制器逻辑 108
6.3.6释放内存 109
6.3.7生成应用程序 110
6.4进一步探索 110
6.5总结 111
6.6问与答 111
6.7作业 111
6.7.1验 111
6.7.2答案 111
6.7.3练习 112
第7章使用文本、键盘和按钮 113
7.1基本用户输入和输出 113
7.1.1按钮 113
7.1.2文本框和文本视图 114
7.1.3标签 114
7.2使用文本字段、文本视图和按钮 114
7.2.1实现概述 115
7.2.2创建项目 115
7.2.3创建输出口和操作 116
7.2.4添加文本框 117
7.2.5添加文本视图 121
7.2.6创建自定义按钮 124
7.2.7藏键盘 129
7.2.8实现视图控制器逻辑 131
7.2.9释放对象 132
7.2.10生成应用程序 132
7.3进一步探索 133
7.4总结 133
7.5问与答 134
7.6作业 134
7.6.1测验 134
7.6.2答案 134
7.6.3练习 134
第8章处理图像、动画和滑块 135
8.1用户输入和输出 135
8.1.1滑块 135
8.1.2图像视图 136
8.2创建并管理图像动画和滑块 136
8.2.1实现概述 136
8.2.2创建项目 137
8.2.3添加动画资源 137
8.2.4准备输出口和操作 138
8.2.5添加图像视图 139
8.2.6添加滑块 143
8.2.7完成界面的创建 145
8.2.8实现视图控制器逻辑 147
8.2.9释放对象 149
8.2.10生成应用程序 150
8.3进一步探索 150
8.4总结 151
8.5问与答 151
8.6作业 151
8.6.1测验 151
8.6.2答案 151
8.6.3练习 152
第9章使用高级界面对象和视图 153
9.1再谈用户输入和输出 153
9.1.1开关 154
9.1.2分段控件 154
9.1.3Web视图 155
9.1.4可滚动的视图 156
9.2使用开关、分段控件和Web视图 156
9.2.1实现概述 157
9.2.2创建项目 157
9.2.3创建输出口和操作 157
9.2.4添加分段控件 158
9.2.5添加开关 161
9.2.6添加Web视图 163
9.2.7完成界面 165
9.2.8实现视图控制器逻辑 166
9.2.9释放对象 169
9.2.10生成应用程序 169
9.3使用可滚动视图 170
9.3.1实现概述 170
9.3.2创建项目 171
9.3.3创建输出口 171
9.3.4添加可滚动视图 171
9.3.5实现滚动行为 173
9.3.6释放对象 174
9.3.7生成应用程序 174
9.4进一步探索 174
9.5总结 175
9.6问与答 175
9.7作业 175
9.7.1测验 175
9.7.2答案 176
9.7.3练习 176
第10章引起用户注意 177
10.1探索提醒用户的方法 177
10.1.1准备通知项目文件 177
10.1.2创建通知项目的界面 178
10.1.3连接到输出口和操作 179
10.2生成提醒 180
10.2.1显示简单提醒 181
10.2.2创建多选项提醒 182
10.2.3在提醒对话框中添加文本框 185
10.3使用提醒声音 188
10.3.1系统声音服务 188
10.3.2播放声音 189
10.4进一步探索 191
10.5总结 191
10.6问与答 191
10.7作业 191
10.7.1测验 191
10.7.2答案 192
10.7.3练习 192
第11章使用弹出框和工具栏显示选项 193
11.1了解弹出框和工具栏 193
11.1.1弹出框 194
11.1.2工具栏 195
11.2结合使用弹出框和工具栏 196
11.2.1实现概述 196
11.2.2创建项目 197
11.2.3设计弹出框的内容 197
11.2.4设计应用程序主视图 200
11.2.5实现应用程序逻辑 206
11.3进一步探索 208
11.4总结 208
11.5问与答 208
11.6作业 209
11.6.1测验 209
11.6.2答案 209
11.6.3练习 209
第12章使用选择器和操作表选择多种值 211
12.1以弹出框为中心的UI元素 211
12.1.1选择器 212
12.1.2操作表 214
12.2用于练习使用选择器和操作表的项目 215
12.3使用日期选择器 215
12.3.1实现概述 215
12.3.2创建项目 216
12.3.3添加日期选择器 217
12.3.4完成界面 219
12.3.5实现视图控制器逻辑 220
12.4实现自定义选择器视图 223
12.4.1实现概述 223
12.4.2创建项目 223
12.4.3添加选择器视图 225
12.4.4完成界面 226
12.4.5向选择器提供数据 227
12.4.6对用户在选择器中选择值做出反应 230
12.4.7微调选择器UI 232
12.5使用操作表 235
12.5.1实现概述 235
12.5.2创建项目 236
12.5.3创建界面 236
12.5.4实现视图控制器逻辑 237
12.5.5对用户按下操作表按钮做出响应 238
12.5.6修改操作表的外观和行为 239
12.6进一步探索 239
12.7总结 240
12.8问与答 240
12.9作业 241
12.9.1测验 241
12.9.2答案 241
12.9.3练习 241
第13章使用模态视图凸显任务 243
13.1模态视图 243
13.2使用模态视图 245
13.2.1实现概述 246
13.2.2创建项目 246
13.2.3设计主视图 247
13.2.4设计模态视图 250
13.2.5实现模态视图逻辑 251
13.3进一步探索 253
13.4总结 253
13.5问与答 254
13.6作业 254
13.6.1测验 254
13.6.2答案 254
13.6.3练习 254
第14章实现多视图应用程序 255
14.1探索单视图应用程序和多视图应用程序 255
14.2创建多视图应用程序 256
14.2.1实现概述 256
14.2.2创建项目 256
14.2.3实例化视图控制器 258
14.2.4添加工具栏控件 260
14.3创建多视图选项卡栏应用程序 265
14.3.1实现概述 265
14.3.2创建项目 266
14.3.3添加选项卡栏控制器 268
14.3.4配置视图控制器类 270
14.3.5实现AreaView视图 270
14.3.6实现VolumeView视图 276
14.3.7实现SummaView视图 279
14.4进一步探索 282
14.5总结 283
14.6问与答 283
14.7作业 283
14.7.1测验 283
14.7.2答案 283
14.7.3练习 284
第15章使用表视图和基于分割视图的应用程序导航数据 285
15.1了解表视图和分割视图 285
15.1.1表视图 286
15.1.2模板SplitViewBasedApplication 287
15.2创建简单的表视图应用程序 288
15.2.1实现概述 289
15.2.2准备视图控制器 289
15.2.3给表视图提供数据 293
15.2.4响应行触摸事件 297
15.2.5微调表视图的外观 299
15.3创建基于分割视图的应用程序 300
15.3.1实现概述 300
15.3.2创建项目 301
15.3.3给应用程序提供数据 304
15.3.4实现根表视图控制器 307
15.3.5处理导航事件 309
15.3.6实现详细视图控制器 309
15.4进一步探索 311
15.5总结 311
15.6问与答 311
15.7作业 312
15.7.1测验 312
15.7.2答案 312
15.7.3练习 312
第16章读写应用程序数据 313
16.1设计方面的考虑 313
16.2读写用户默认设置 315
16.2.1隐式首选项 315
16.2.2实现系统设置 320
16.3理解iPad文件系统沙箱 327
16.3.1应用程序数据的存储位置 328
16.3.2文件路径 329
16.4实现文件系统存储 330
16.4.1创建项目 330
16.4.2创建界面 332
16.4.3添加另一个视图控制器 336
16.4.4实现应用程序的逻辑 338
16.4.5实现对象归档 343
16.4.6在应用程序F1ashCards中归档 345
16.5进一步探索 346
16.6总结 347
16.7问与答 347
16.8作业 347
16.8.1测验 347
16.8.2答案 347
16.8.3练习 348
第17章创建可旋转及调整大小的用户界面 349
17.1可旋转和调整大小的界面 349
17.1.1界面旋转的关键 350
17.1.2设计可旋转和调整大小的界面 351
17.2使用InterfaceBuilder创建可旋转和调整大小的界面 352
17.2.1创建项目 352
17.2.2创建灵活的界面 353
17.3旋转时调整控件的框架 356
17.3.1创建项目 357
17.3.2创建界面 358
17.3.3实现调整框架的逻辑 361
17.4旋转时切换视图 362
17.4.1创建项目 362
17.4.2创建界面 363
17.4.3实现视图切换逻辑 365
17.5进一步探索 367
17.6总结 367
17.7问与答 367
17.8作业 368
17.8.1测验 368
17.8.2答案 368
17.8.3练习 368
第18章扩展触摸界面 369
18.1多点触摸手势识别 369
18.2使用手势识别器 370
18.2.1实现概述 370
18.2.2创建项目 371
18.2.3创建界面 372
18.2.4实现轻按手势识别器 374
18.2.5实现轻扫手势识别器 376
18.2.6实现张合手势识别器 377
18.2.7实现旋转手势识别器 378
18.2.8实现摇动识别器 380
18.3进一步探索 381
18.4总结 381
18.5问与答 381
18.6作业 382
18.6.1测验 382
18.6.2答案 382
18.6.3练习 382
第19章使用加速计输入检测移动 383
19.1加速计简介 383
19.2检测朝向 385
19.2.1添加输出口 386
19.2.2设计UI并连接到输出口 386
19.2.3实现UIAccelerometerDelegate协议 387
19.3检测倾斜 389
19.3.1添加输出口 389
19.3.2设计Ul并连接到输出口 389
19.3.3实现UIAccelerometerDelegate协议 390
19.4检测移动 391
19.5进一步探索 392
19.6总结 393
19.7作业 393
19.7.1验 393
19.7.2答案 393
19.7.3练习 393
第20章使用多媒体 395
20.1探索多媒体 395
20.1.1MediaPlayer框架 396
20.1.2AVFoundation框架 396
20.1.3图像选择器 397
20.2创建用于练习使用多媒体的应用程序 397
20.2.1实现概述 397
20.2.2编辑项目文件 397
20.2.3创建应用程序界面 399
20.2.4连接到输出口和操作 400
20.3使用电影播放器 400
20.3.1添加MediaPlayer框架 401
20.3.2添加多媒体文件 401
20.3.3实现电影播放 402
20.3.4执行清理工作 403
20.4录制和播放音频 404
20.4.1添加AVFoundation框架 404
20.4.2实现录音功能 405
20.4.3控制录音 406
20.4.4控制音频播放 407
20.4.5执行清理工作 407
20.5使用iPad照片库 408
20.6访问并播放iPod库 410
20.6.1实现多媒体选择器 411
20.6.2实现音乐播放器 414
20.7进一步探索 415
20.8总结 416
20.9问与答 416
20.10作业 416
20.10.1测验 416
20.10.2答案 417
20.10.3练习 417
第21章与其他应用程序交互 419
21.1应用程序集成 419
21.1.1地址薄 419
21.1.2电子邮件 420
21.1.3地图功能 421
21.2使用地址簿、电子邮件和地图 422
21.2.1实现概述 422
21.2.2创建项目 422
21.2.3创建应用程序UI 423
21.2.4连接到输出口和操作 424
21.2.5访问地址薄 424
21.2.6使用地图 429
21.2.7使用MessageUI 431
21.3进一步探索 434
21.4总结 435
21.5问与答 435
21.6作业 435
21.6.1测验 435
21.6.2答案 435
21.6.3练习 436
第22章创建通用应用程序 437
22.1开发通用应用程序 437
22.2理解模板WindowbasedApplication 438
22.2.1通用应用程序的plist文件 439
22.2.2创建通用应用程序:方法 1440
22.2.3创建通用应用程序:方法 2445
22.2.4小结 451
22.3其他通用应用程序工具 451
22.3.1升级iPhone目标文件 451
22.3.2转换界面 452
22.4进一步探索 452
22.5总结 453
22.6问与答 453
22.7作业 453
22.7.1测验 453
22.7.2答案 453
22.7.3练习 454
第23章应用程序调试和优化 455
23.1在Xcode中调试 455
23.1.1使用NSLog进行调试 455
23.1.2创建用于调试的项目 457
23.1.3设置断点及单步执行代码 458
23.2使用Instruments监视 465
23.2.1跟踪应用程序 466
23.2.2可用的工具 469
23.3使用Shark分析性能 470
23.3.1连接到应用程序 471
23.3.2理解性能分析结果 474
23.4进一步探索 476
23.5总结 476
23.6问与答 476
23.7作业 477
23.7.1测验 477
23.7.2答案 477
23.7.3练习 477
第24章通过AppStore分发应用程序 479
24.1通过AppStore发布应用程序前的准备工作 479
24.1.1创建图标 480
24.1.2创建iPad分发证书 481
24.1.3设置AppID 483
24.1.4创建分发供应配置文件 483
24.1.5配置项目以便分发 484
24.2提交应用程序以便批准 486
24.2.1准备应用程序配置文件 487
24.2.2上传应用程序二进制文件 490
24.3推销应用程序 491
24.3.1使用iTunesConnect监视和管理销售情况 492
24.3.2利用网站和社交网络 493
24.3.3更新应用程序 494
24.3.4调整价格 494
24.4其他分发方法 495
24.4.1adhoc部署 495
24.4.2企业部署 496
24.5总结 496
24.6问与答 496
24.7作业 497
24.7.1测验 497
24.7.2答案 497
24.7.3练习 497