iPhone 4与iPad开发基础教程

iPhone 4与iPad开发基础教程
作 者: 马克 纳丁 拉马赫
出版社: 人民邮电出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 操作系统/系统开发
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  Dave Mark深受爱戴的Apple技术开发专家,具有多年开发经验。他撰写过许多Mac平台和iOS开发方面的畅销书,比如《iPad开发基础教程》(中文版已由人民邮电出版社出版)。目前专注于iPhone技术图书的写作。Jack Nutting 资深Apple技术专家,Objective-C和Cocoa框架的坚定拥护者。除本书外,还与人合著了Learn Cocoa on theMac。他有时会在www.nuthole.com上发表博客。Jeff LaMarche 资深Apple平台专家,拥有多年企业级开发经验。他是MacTechMagazine和Apple公司开发人员网的专栏作家。

内容简介

Apple公司的iPhone已经开创了移动平台新纪元! iPhone与AppStore的绝配为全世界的程序员提供了一个施展才华的全新大舞台。只要有新奇的创意,你完全有可能像开发iShoot游戏的EthanNicholas(日收入2万多美元)和开发Trism游戏的SteveDemeter(月收入超过10万美元)那样,仅凭单枪匹马就赢得全球市场,成功创业,改变自己的人生。 英文原版自第1版问世以来在Amazon计算机图书排行榜持续雄踞榜首,总排名一度在20名左右,被奉为经典。而中文版出版后也迅速荣登各大网店排行榜榜首,并创造了不到半年就印刷四次的销售奇迹。书中从到Apple网站注册账号、下载和安装相关工具开始,清晰透彻地讲述了创建iPhone应用程序的全过程。作者在探讨基本概念和各个关键特性时(iPhone界面元素、数据保存、SQLite、Quartz和OpenGLES、手势支持、本地化、CoreLocation等),提供了丰富的实例。更难得的是,本书始终强调iPhone开发中的各种最佳实践,即使是有经验的开发人员,也会受益匪浅。本书新版针对最新的iOS版本和最新发布的SDK做了大幅修订,力求使新老读者都觉得物有所值。作者在纠正上一版错误的基础上,不仅更新了所有项目代码,使之兼容新旧SDK,还新增了不少内容,进一步阐明一些读者认为比较难懂的主题。此外,书中还增加了iPad编程以及线程和后台处理这两章内容。立即展卷阅读,开始神奇的iPhone和iPad开发之旅吧!

图书目录

第1 章 欢迎来到iPhone 世界   1

1.1 关于本书  1

1.2 必要条件   1

1.2.1 开发者的选择  3

1.2.2 必备知识  4

1.3 编写iOS 应用程序有何不同   4

1.3.1 只有一个应用程序正在运行   5

1.3.2 只有一个窗口  5

1.3.3 受限访问  5

1.3.4 有限的响应时间  5

1.3.5 有限的屏幕大小  5

1.3.6 有限的系统资源   6

1.3.7 不支持垃圾收集   6

1.3.8 新功能   6

1.3.9 与众不同的方法  7

1.4 本书内容  7

1.5 本次更新的内容  8

1.6 准备开始吧  8

第2 章 创建基本项目  9

2.1 在Xcode 中设置项目   9

2.2 Interface Builder 简介  14

2.2.1 nib 文件的构成  15

2.2.2 在视图中添加标签  16

2.2.3 改变属性  18

2.3 美化iPhone 应用程序  19

2.4 小结   22

第3 章 处理基本交互  23

3.1 MVC 范型   23

3.2 创建项目  24

3.3 创建视图控制器  24

3.3.1 输出口  25

3.3.2 操作  26

3.3.3 将操作和输出口添加到视图控制器  27

3.3.4 将操作和输出口添加到实现文件  30

3.4 使用应用程序委托  34

3.5 编辑MainWindow.xib   36

3.6 编辑Button_FunViewController.xib   37

3.6.1 在Interface Builder 中创建视图  37

3.6.2 连接所有元素   40

3.6.3 测试   43

3.7 小结  43

第4 章 更丰富的用户界面  44

4.1 满是控件的屏幕    44

4.2 活动和被动控件   46

4.3 创建应用程序  46

4.4 实现图像视图和文本字段  47

4.4.1 确定输出口  47

4.4.2 确定操作   48

4.4.3 添加图像视图  49

4.4.4 添加文本字段  52

4.4.5 设置第二个文本字段的属性  55

4.4.6 连接输出口   55

4.5 关闭键盘   55

4.5.1 完成输入后关闭键盘  56

4.5.2 通过触摸背景关闭键盘  57

4.6 实现滑块和标签  59

4.6.1 确定输出口和操作   59

4.6.2 添加输出口和操作   60

4.6.3 添加滑块和标签  61

4.6.4 连接操作和输出口   62

4.7 实现开关、按钮和分段控件   62

4.7.1 添加输出口和操作   62

4.7.2 添加开关、按钮和分段控件  65

4.7.3 连接开关输出口和操作  66

4.7.4 添加按钮   66

4.8 实现操作表和警报  67

4.8.1 遵从操作表委托方法   67

4.8.2 显示操作表  68

4.8.3 使用操作表委托  70

4.9 美化按钮   71

4.9.1 viewDidLoad 方法   71

4.9.2 控件状态  72

4.9.3 可拉伸图像   72

4.10 成为出色的内存使用者  73

4.11 小结   74

第5 章 自动旋转和自动调整大小   75

5.1 自动旋转机制  75

5.2 使用自动调整属性处理旋转  77

5.2.1 指定旋转支持   77

5.2.2 使用自动调整属性设计界面   79

5.2.3 大小检查器的自动调整属性   80

5.2.4 设置按钮的自动调整属性  81

5.3 在旋转时重构视图   82

5.3.1 声明和连接输出口   83

5.3.2 在旋转时移动按钮   84

5.4 切换视图  85

5.4.1 确定输出口和操作   86

5.4.2 声明操作和输出口   87

5.4.3 设计两个视图  88

5.4.4 实现交换和操作   88

5.5 小结  91

第6 章 多视图应用程序   92

6.1 多视图应用程序的常见类型  92

6.2 多视图应用程序的体系结构  94

6.2.1 根控制器  95

6.2.2 内容视图剖析  96

6.3 构建View Switcher  96

6.3.1 创建视图控制器和nib 文件   97

6.3.2 修改应用程序委托   99

6.3.3 SwitchViewController.h   101

6.3.4 添加视图控制器  101

6.3.5 构建包含工具栏的视图  103

6.3.6 编写根视图控制器  104

6.3.7 实现内容视图  108

6.3.8 制作转换动画  110

6.4 小结  113

第7 章 标签栏与选取器  114

7.1 Pickers 应用程序  114

7.2 委托和数据源  117

7.3 建立工具栏框架  117

7.3.1 创建文件  117

7.3.2 添加根视图控制器  118

7.3.3 编辑MainWindow.xib   120

7.3.4 连接输出口,然后运行  123

7.4 实现日期选取器  124

7.5 实现单个组件选取器  126

7.5.1 声明输出口和操作  126

7.5.2 构建视图  127

7.5.3 将控制器实现为数据源和委托  127

7.6 实现多组件选取器  131

7.6.1 声明输出口和操作  131

7.6.2 构建视图  132

7.6.3 实现控制器  132

7.7 实现独立组件  135

7.8 使用自定义选取器创建简单游戏   141

7.8.1 编写控制器头文件  141

7.8.2 构建视图  142

7.8.3 添加图像资源   143

7.8.4 实现控制器  143

7.8.5 最后的细节  149

7.8.6 链接Audio Toolbox 框架  153

7.9 小结   154

第8 章 表视图简介  155

8.1 表视图基础  156

8.1.1 表视图和表视图单元   156

8.1.2 分组表和无格式表  157

8.2 实现一个简单的表     158

8.2.1 设计视图  158

8.2.2 编写控制器  158

8.2.3 添加一个图像  161

8.2.4 表视图单元样式   163

8.2.5 设置缩进级别  165

8.2.6 处理行的选择  165

8.2.7 更改字体大小和行高   167

8.3 定制表视图单元   168

8.3.1 单元应用程序  168

8.3.2 使用UITableViewCell 的自定义子类   172

8.4 分组分区和索引分区   176

8.4.1 构建视图  176

8.4.2 导入数据  177

8.4.3 实现控制器  177

8.4.4 添加索引  181

8.5 实现搜索栏  181

8.5.1 重新考虑设计  181

8.5.2 深层可变副本  182

8.5.3 更新控制器头文件  184

8.5.4 修改视图  185

8.5.5 修改控制器实现  186

8.6 小结  197

第9 章 导航控制器和表视图  198

9.1 导航控制器  198

9.1.1 栈的性质  198

9.1.2 控制器栈   199

9.2 由6 个部分组成的分层应用程序:Nav   200

9.2.1 子控制器  200

9.2.2 Nav 应用程序的骨架  203

9.2.3 第一个子控制器:展示按钮视图  209

9.2.4 第二个子控制器:校验表   217

9.2.5 第三个子控制器:表行上的控件  221

9.2.6 第四个子控制器:可移动的行  227

9.2.7 第五个子控制器:可删除的行  233

9.2.8 第六个子控制器:可编辑的详细窗格  239

9.2.9 其他内容  257

9.3 小结  260

第10 章 iPad 开发注意事项   261

10.1 分割视图和浮动窗口  261

10.2 创建SplitView 项目  263

10.3 xib 定义结构   264

10.4 代码定义功能  265

10.5 显示总统信息   272

10.6 创建浮动窗口  276

10.7 小结   282

第11 章 应用程序设置和用户默认设置  283

11.1 设置束  283

11.2 AppSettings 应用程序   284

11.2.1 创建项目   286

11.2.2 使用设置束  286

11.2.3 读取应用程序中的设置   297

11.2.4 更改应用程序中的默认设置  302

11.2.5 实现逼真效果   305

11.3 小结  307

第12 章 保存数据  308

12.1 应用程序的沙盒  308

12.1.1 获取Documents 目录  309

12.1.2 获取tmp 目录  310

12.2 文件保存策略  310

12.2.1 单个文件持久性  310

12.2.2 多个文件持久性  311

12.3 属性列表  311

12.3.1 属性列表序列化  311

12.3.2 持久性应用程序的第一个版本  312

12.4 对模型对象进行归档  317

12.4.1 符合NSCoding  318

12.4.2 实现NSCopying   319

12.4.3 对数据对象进行归档和取消归档  319

12.4.4 归档应用程序   320

12.5 使用iPhone 的嵌入式SQLite3   324

12.5.1 创建或打开数据库   325

12.5.2 绑定变量  327

12.5.3 SQLite3 应用程序   327

12.6 使用Core Data  334

12.6.1 实体和托管对象   335

12.6.2 Core Data 应用程序   339

12.7 小结    348

第13 章 Grand Central Dispatch、后台处理及其应用   349

13.1 Grand Central Dispatch   349

13.2 SlowWorker 简介  350

13.3 线程基础知识   352

13.4 工作单元   353

13.5 GCD:低级队列  354

13.5.1 傻瓜式操作  354

13.5.2 改进SlowWorker   355

13.6 后台处理   360

13.6.1 应用程序生命周期  361

13.6.2 状态更改通知  361

13.6.3 创建State Lab  363

13.6.4 执行状态  364

13.6.5 利用执行状态更改  365

13.6.6 处理不活动状态  366

13.6.7 处理后台状态  370

13.7 小结  378

第14 章 使用Quartz 和OpenGL 绘图  379

14.1 图形世界的两个视图   379

14.2 Quart 绘图方法  380

14.2.1 Quartz 2D 的图形上下文   380

14.2.2 坐标系   381

14.2.3 指定颜色   382

14.2.4 在上下文中绘制图像  383

14.2.5 绘制形状:多边形、直线和曲线  383

14.2.6 Quartz 2D 工具示例:模式、梯度、虚线模式  384

14.3 QuartzFun 应用程序   384

14.3.1 构建QuartzFun 应用程序   384

14.3.2 添加Quartz Drawing 代码  394

14.3.3 优化QuartzFun 应用程序   398

14.4 GLFun 应用程序  401

14.4.1 构建GLFun 应用程序  402

14.4.2 使用OpenGL 绘图  404

14.4.3 完成GLFun   411

14.5 小结  411

第15 章 轻击、触摸和手势   412

15.1 多触摸术语   412

15.2 响应者链  413

15.2.1 响应者链中的对象   413

15.2.2 转发事件:保持响应者链的活动状态   414

15.3 多触摸体系结构    415

15.3.1 将触摸相关代码放在何处  415

15.3.2 4 个手势通知方法  415

15.4 检测触摸  416

15.4.1 构建一个Touch Explorer 应用程序  417

15.4.2 运行Touch Explorer    419

15.5 检测轻扫    419

15.5.1 构建Swipes 应用程序   420

15.5.2 使用自动手势识别  423

15.5.3 实现多个轻扫动作  424

15.6 检测多次轻击  425

15.7 检测捏合操作  430

15.8 创建和使用自定义手势   433

15.8.1 定义选中标记手势   433

15.8.2 将勾选标记手势附加到视图  435

15.9 小结  437

第16 章 Core Location 定位功能  438

16.1 位置管理器  438

16.1.1 设置所需的精度  439

16.1.2 设置距离筛选器  439

16.1.3 启动位置管理器  439

16.1.4 更明智地使用位置管理器   440

16.2 位置管理器委托  440

16.2.1 获取位置更新  440

16.2.2 使用CLLocation 获取纬度和经度   440

16.2.3 错误通知   442

16.3 尝试使用Core Location   442

16.3.1 更新位置管理器  446

16.3.2 确定移动距离  447

16.4 小结  447

第17 章 加速计  448

17.1 加速计物理学   448

17.2 不要忘记旋转   449

17.3 Core Motion 和动作管理器   449

17.3.1 基于事件的动作  450

17.3.2 主动动作访问  455

17.3.3 加速计结果  457

17.4 检测摇动   458

17.4.1 Baked-In 摇动  459

17.4.2 摇动与击碎  459

17.5 将加速计用作方向控制器  464

17.5.1 滚弹珠程序  464

17.5.2 编写Ball View  466

17.5.3 计算小球运动  469

17.6 小结  472

第18 章 iPhone 照相机和照片库  473

18.1 使用图像选取器和UIImagePicker-Controller   474

18.2 实现图像选取器控制器委托   475

18.3 实际测试照相机和库  476

18.3.1 设计界面   477

18.3.2 实现照相机视图控制器   477

18.4 小结  481

第19 章 应用程序本地化  482

19.1 本地化体系结构  482

19.2 字符串文件  483

19.2.1 字符串文件里面是什么   484

19.2.2 本地化的字符串宏   484

19.3 现实中的iPhone:本地化应用程序  485

19.3.1 创建LocalizeMe   485

19.3.2 测试LocalizeMe   489

19.3.3 本地化nib 文件  489

19.3.4 本地化图像  492

19.3.5 生成和本地化字符串文件  493

19.3.6 本地化应用程序显示名称  495

19.4 小结  496

第20 章 未来之路  497

20.1 别陷进单一的思路里  497

20.1.1 苹果公司的文档   497

20.1.2 邮件列表  498

20.1.3 论坛  498

20.1.4 网站  499

20.1.5 博客  499

20.2 参考资料   500

20.3 作者  501

20.4 再会  501