基本信息·出版社:电子工业出版社 ·页码:489 页 ·出版日期:2010年01月 ·ISBN:9787121100000 ·条形码:9787121100000 ·版本:第1版 ·装帧:平装 ...
商家名称 |
信用等级 |
购买信息 |
订购本书 |
|
|
iPhone SDK 3开发指南 |
|
|
|
iPhone SDK 3开发指南 |
|
基本信息·出版社:电子工业出版社
·页码:489 页
·出版日期:2010年01月
·ISBN:9787121100000
·条形码:9787121100000
·版本:第1版
·装帧:平装
·开本:16
·正文语种:中文
·外文书名:iPhone SDK Development
内容简介 《iPhone SDK 3开发指南》循序渐进地讲述了基于 iPhone SDK 的应用程序开发的各个方面,涉及到了从编码到调试到性能优化的各个步骤。特别值得称道的是《iPhone SDK 3开发指南》涵盖了最新的 iPhone SDK 3.0 的有关内容。既适合作为了解 iPhone 程序开发的各个方面的参考,也适合作为深入掌握iPhone 程序开发的阶梯教程。
媒体推荐 我喜欢这本书,它没有丝毫的废话、直截了当地指出了通往iPhone SDK开发的康庄大道。Chris和Bill的方法相当易于上手且详尽周密,与此同时,又没有丝毫的夸张或说教。如果有人想独自探索iPhone开发的话,这无疑是你书架中不可或缺的一本书。
——Alex Lindsay皮克斯公司,创始人
Dudney和Adamson的这本书简化了学习iPhone开发的过程,该书通过精心设计的内容涵盖了所有的相关主题,同时通过全面而深入浅出的讲解让所有开发者都能理解。所以赶快读完这本书,让我们相聚在下一次iPhoneDeVCamp吧!
——Raven Zachary iPhoneDevCamp创始人,Small Society主席
如果你准备开发下一个iPhone的杀手级应用,这本书将是一个伟大的起点,从第1章“引言”,到后面处理音频的那些更高级的内容,Dudney和Adamson将告诉你所有需要知道的关于iPhone开发的内容。
——Mkchael Sanfrod Flipgide5公司的创始人
任何需要学习或者进一步了解iPhone开发的人都应该读读这本书,初学者将会爱上BillDudney和Chris Adamson提供的那些易于理解的代码示例。经验丰富的开发者则会找到关于iPhone SDK的深度实例,所以我向你强力推荐这本书。
——Henry Balanon Bickbot公司的创始人及首席程序员
Giga OM's TheAppleBlog.com的作者
无论从深度还是从广度上,本书对于iPhone开发者来说都是无与伦比的宝贵资源。
——MaFCUS Crafter rcdartisan.com,iPhone开发者
如果你正期待着为学习iPhone打下一个坚实的基础,我强烈推荐你使用这本书。本书中深入而广泛的代码实例,以及对iPhone SDK全面而详尽的解释,将使你旗开得胜。
——John Muchow iPhoneDeveloper Tips.com创始人 3 Sixty Software的技术总监
编辑推荐 《iPhone SDK 3开发指南》:一网打尽iPhone SDK 3所有新特性。
目录 第1章 引言 1
1.1 本书内容 3
1.2 致谢 4
第2章 你好,iPhone 7
2.1 准备工作 7
2.2 创建“Hello iPhone”项目 9
2.3 创建一个简单的界面 11
2.4 旋转文本——调整UI 13
2.5 旋转文本——调整代码 14
2.6 代码导航 15
2.7 在iPhone上运行程序 16
第3章 iPhone开发基础 18
3.1 iPhone软件的体系结构 19
3.2 用Objective-C编码 19
3.3 Cocoa Touch的基础类 21
3.4 与Xcode和Interface Builder一起工作 22
3.5 设计一个交互应用 23
3.6 iPhone应用程序的骨架 30
3.7 用委托机制(delegation)来定制行为 33
3.8 管理应用程序的内存 35
3.9 以属性的方式存取变量 37
3.10 外卖:要记住的东西 39
第4章 视图控制器 41
4.1 实现一个按钮操作 41
4.2 建立一个模型 44
4.3 为控制器添加插座变量和动作 47
4.4 更新UI 49
4.5 实现控制器 50
4.6 创建新的视图控制器 53
4.7 构造UI 56
4.8 制作MovieEditorViewController 59
4.9 Interface Builder里的editing视图控制器 60
第5章 表格视图 62
5.1 表格的组成 62
5.2 建立基于表格的导航 64
5.3 为表格数据建模 65
5.4 表格的单元 68
5.5 编辑表格 71
5.6 用表格导航 73
5.7 定制表格视图单元 79
5.8 排序表格数据 84
第6章 导航 87
6.1 邮件导航 87
6.2 导航控制器 88
6.3 基于导航的应用 89
6.4 把视图控制器压进堆栈 91
6.5 定制导航栏 93
6.6 弹出视图控制器 97
第7章 页签条控制器 99
7.1 什么时候用页签 99
7.2 创建一个页签条控制器 100
7.3 页签控制器里的视图控制器 102
7.4 多个控制器 107
第8章 文件I/O 110
8.1 探索文件系统 111
8.2 创建我们的项目 113
8.3 获取文件属性 119
8.4 从文件中读取数据 125
8.5 异步文件读取 128
8.6 创建和删除文件和目录 132
8.7 把数据写入到文件 138
8.8 属性列表和NSCoding 141
第9章 预置 143
9.1 在应用程序中显示一个能翻转的预置视图 143
9.2 管理预置 146
9.3 改变和更新预置 148
9.4 顺路看看:每秒种更新一次时钟标签 152
9.5 在系统设置应用程序中使用预置 153
9.6 装入在“设置”应用程序中配置好的预置 159
第10章 SQLite数据库 162
10.1 创建你的数据库 163
10.2 创建实例程序 166
10.3 把数据库放到设备上 168
10.4 在设备上使用数据库 171
第11章 Core Data 179
11.1 Conference应用程序 180
11.2 Core Data栈 182
11.3 构建Core Data栈 184
11.4 建模 187
11.5 Track表格视图 194
11.6 获取议题 198
11.7 修改议题 199
11.8 导航 202
第12章 连接互联网 209
12.1 在10分钟之内用UIWebView构建一个浏览器 210
12.2 从网络读取数据 215
12.3 处理HTTP身份认证 219
12.4 解析Web Service返回的XML 225
12.5 通过你的应用发送邮件 235
第13章 点对点网络 239
13.1 利用Bonjour来使用特设网络服务 239
13.2 Bonjour服务发现 241
13.3 Game Kit概述 247
13.4 建立一个使用蓝牙网络的游戏 248
13.5 建立一个Peer拾取器 249
13.6 提供一个Peer拾取器委托 251
13.7 网络游戏的逻辑 253
13.8 通过GKSession进行通信 255
13.9 语音聊天 260
第14章 视频播放 262
14.1 使用MPMoviePlayerController进行视频播放 262
14.2 接收来自影片播放器的通知 267
14.3 支持的媒体格式 269
第15章 存取iPod库 272
15.1 监测iPod的回放 272
15.2 控制iPod的播放 281
15.3 使用iPod库 283
15.4 浏览iPod库 293
第16章 播放和录制音频 296
16.1 创建一个AVAudioRecorder 296
16.2 未压缩的音频格式 300
16.3 编码音频格式 304
16.4 使用AVAudioRecorder 307
16.5 监控录音音量 311
16.6 用AVFramework播放音频 316
16.7 与音频会话交互 321
第17章 Core Audio 324
17.1 使用过程式的C API 325
17.2 播放系统声音 327
17.3 Core Audio概述 333
第18章 事件、Multi-Touch及手势 337
18.1 事件模型 337
18.2 跟踪触摸活动 339
18.3 触碰 341
18.4 Multi-Touch手势 342
第19章 绘制自定义视图 347
19.1 绘制模型 347
19.2 绘制矢量图 348
19.3 路径 349
19.4 图形环境 354
19.5 重新显示一个视图 355
第20章 绘制图像和照片 357
20.1 基本的图像绘制 358
20.2 定制图片显示 359
20.3 图片拾取器 361
20.4 捕捉视频 364
第21章 Core Animation 366
21.1 Core Animation介绍 366
21.2 UIView动画 367
21.3 层 373
21.4 OpenGL ES 375
第22章 加速计 379
22.1 获取设备方向 380
22.2 从UIResponder响应链中获取晃动事件 381
22.3 获取原始的加速计数据 382
22.4 过滤加速计数据 388
第23章 地址簿 395
23.1 地址簿UI 395
23.2 People拾取器委托 396
23.3 创建和配置People拾取器 398
23.4 Person控制器 399
23.5 增加新的联系人 401
第24章 iPhone定位API 405
24.1 知道在哪里 405
24.2 位置更新 409
24.3 指南针 413
第25章 Map Kit 416
25.1 Contact Mapper(联系人地图) 416
25.2 显示一幅地图 417
25.3 地图标注 420
25.4 选择一个标注 429
第26章 应用集成 432
26.1 运行别的应用程序 432
26.2 成为能被集成的 434
第27章 调试 438
27.1 理解并修正构建中的错误 439
27.2 理解并修正导入/链接错误 441
27.3 使用iPhone SDK文档 443
27.4 理解并修正Interface Builder错误 446
27.5 调试 448
27.6 找出重复释放的“Zombie”对象 455
第28章 性能调整 460
28.1 使用Shark检查性能 461
28.2 使用Instruments检查性能 466
28.3 用Clang静态分析器检查性能 471
第29章 之前和之后 476
29.1 正确地开始 477
29.2 改善 480
29.3 其他特性 481
29.4 Beta测试 482
29.5 进入商店 483
29.6 推广你的应用 484
附录A 参考文献 486
……
序言 2007年1月9日上午9时42分,这个世界从此刻开始永远改变了。一些特别的东西来到了我们的生活之中,但是,在这段短暂的时间里,并非所有的人都意识到了它将会变得多么特别。
这个我们知道叫做iPhone的产品远不止是一个小玩意儿,它是一种现象。它让我们中的许多人在起床前就知道新闻头条、股票趋势和每天的日程安排。还要感谢iPhone SDK,它让我们还可以通过iPhpone来做超过5万件别的事情,而不管在什么时间,或者身处何地。它真正是"口袋中的生活"。
在2001年我加入Apple的时候,这里还没有App Store,没有iPhone,也没有iPod。Mac OS X还仅仅只有几周的历史。回想这些东西出现得如此之快,简直令人惊异。iPhone已经创造出了它自身的经济体系,在其体系中,不再需要专利或者机构投资就能取得巨大的成功。所需的只是一个好主意以及去把它变成现实的动机。
作为一个iPhone开发者,你将不仅仅是这种现象的一个参与者,你还将融入一个由充满激情的杰出工程师、设计师和市场人员组成的大家庭,他们比你曾经遇到过的大多数人,对自己的工作更感到自豪。多数情况下,他们对Apple的贡献可以回溯到Mac OS X的早期版本,有些甚至能回溯到经典的Mac OS。他们把会议组织得像团聚,他们与"竞争者"共享知识,因为他们知道更好的应用程序——不管出自谁手——都会形成一个更好的平台。他们热爱这些技术。他们为此而活。他们在这之上建立了他们的事业。超过八年与他们的紧密合作,激励了我,使我离开了原来的理想工作并加入到他们之中。
这种技术与团体的紧密联合,孕育了我们如今正生活于其中的这个历史性的时刻。仅仅在App Store诞生一年之后,已经很难想起没有它之前的日子,更不用说还有更多的奇妙的事将会发生。
这个平台还在成长,我们也在不断学习。你的努力将为这正在展开的传奇故事添上重重的一笔。本书将是你开始这个特别的旅途的第一步。
文摘 插图:
页签控制器的好处之一是它自动为我们完成了大量的工作。如果你给它超过5个控制器,它会自动在页签上加一个"More"按钮。当用户单击"More"按钮时,页签控制器会显示余下的那些导航控制器和一个"Edit"按钮。如果用户单击这个"Edit"按钮,他们就可以重新安排控制器的列表,这样他们喜欢的那些会显示在主栏里,其他则在导航控制器里。
页签控制器默认完成所有这些事件。当你加入自己的视图控制器列表(无论是在Interface Builder里或通过代码),页签控制器当然知道是不是超过了5个,并加入这个新功能。页签控制器也允许我们控制它的许多行为。首先,让我们看看可以控制哪些视图控制器重新排序。
页签控制器查看custommizalLbleViewController属性从而知道哪些是可以被重排顺序的。如果一个视图控制器不在这个列表里,那么页签控制器就不会允许更改它在列表里的位置。默认情况下,页签控制器管理的所有视图控制器都在这个列表里,所以如果你不想让其中某些被移动,就需要把它们从列表里删除。让我们看一个例子来使这些概念更清晰。
在7.3节里,我们只有两个控制器,分别显示不同顺序的5个州的列表。在这个例子里,我们把这个列表扩展成可以用6种不同的顺序显示:按名字的字母顺序、按人口数量或者按面积,每种排列方式都有升序和降序控制器,这样总共6种。在现实世界里,你大概不会制作像这样的UI,不过这个例子在前一个例子的基础上加入了极少的修改,以便教会你如何使用页签控制器,而无须被UI设计干扰。
在本章之初你已经看见过States应用在模拟器里运行的屏幕截图(如图7-l所示)了。底部的条目是按Interface Builder里定义的顺序排列的。