出版时间:2009-11-1 出版社:人民邮电出版社 作者:Dave Mark,Jeff LaMarche 页数:412 译者:漆振,杨越,孙文磊
Tag标签:无
前言
这真是一段令人难忘的经历!我们最初编写这本关于iPhone7千发的书完全是出于个人爱好,从未想象过这本书会有如此多的读者。谁能想到,一本薄薄的小书竟然能够在全球各地畅销。读者对iPhone开发的热情是我们始料不及的。当然,这期间的点点滴滴也给我们留下了美好的回忆。那么,这个新版本中有哪些新内容?太多了!对于初学者,我们介绍了每一行代码,并且针对SDK3修改了每个项目。诚如你所愿,我们也全面修改了文字内容,使所有的解释说明都保持最新。我们还根据Apress网页的勘误和我们自己的网站http:Hiphonedevbook.com上的错误报告”,尽最大努力纠正了书中的每一个错误。当然,人无完人,金无足赤,所以如果你发现了任何错误,一定要告知我们,以便我们在下次印刷时能够继续更新本书。如果已经有了上一版,还需不需要购买本书呢?这个问题非常好,它也是Apress出版社与我们以及我们两个作者之间反复交流的问题.本书新增了许多内容,包括一个介绍CoreData的新项目。CoreData是一项重要的持久性技术,它在iPhone开发中发挥着重要作用。此外,新版加入了许多内容,使一些较为复杂的主题变得容易理解。毫无疑问,这一版比上一版更加出色。如果你已经学习了上一版并且掌握了其中的所有材料,那么请继续学习我们所写的More iPhone 3 Development(Apress,2009),该书弥补了本书的不足,讨论了SDK 3中引入的优秀的新技术。如果你还没有完整地学完上一版,仍然感觉思绪有些不太清楚,或者如果你只是想支持一下我们两位作者,那么一定要买这一版。我们会感谢你的支持。一定要访问http://iphonedevbook.com,告诉我们你开发的新颖的应用程序。我们期待着在论坛上见到你。祝编码愉快!
内容概要
iPhone是一种全新的移动平台,苹果公司为它推出了强大的软件开发工具包iPhone SDK。本书是一部关于iPhone SDK 3和iPhone 3开发的基础教程,内容翔实、语言生动。书中结合消费类设备上常见的实例,循序渐进地讲解了iPhone 3开发的基本流程,并介绍了最先进、时尚、受欢迎的iPhone 3新特性。 本书内容完整丰富,具有较强的通用性,编程领域中各层次读者都能通过本书快速学习iPhone开发,提高相关技能。
作者简介
Dave Mark 深受爱戴的Apple技术开发专家,具有多年开发经验。他撰写过许多Mac平台畅销书,目前专注于iPhone技术图书的写作,包括本书姊妹篇《iPhone 3开发高级教程》(中文版即将由人民邮电出版社出版)。
书籍目录
第1章 欢迎来到iPhone的世界 1.1 关于本书 1.2 必要条件 1.3 必备知识 1.4 编写iPhone应用程序有何不同 1.4.1 只有一个正在运行的应用程序 1.4.2 只有一个窗口 1.4.3 受限访问 1.4.4 有限的响应时间 1.4.5 有限的屏幕大小 1.4.6 有限的系统资源 1.4.7 不支持垃圾收集 1.4.8 新功能 1.4.9 与众不同的方法 1.5 本书内容 1.6 本次更新的内容 1.7 准备开始吧 第2章 创建基本项目 2.1 在Xcode中设置项目 2.2 Interface Builder简介 2.2.1 nib文件的构成 2.2.2 在视图中添加标签 2.3 美化iPhone应用程序 2.4 小结第3章 处理基本交互 3.1 MVC范型 3.2 创建项目 3.3 创建视图控制器 3.3.1 输出口 3.3.2 操作 3.3.3 将操作和输出口添加到视图控制器 3.3.4 将操作和输出口添加到实现文件 3.4 使用应用程序委托 3.5 编辑MainWindow.xib 3.6 编辑Button_FunViewController.xib 3.6.1 在Interface Builder中创建视图 3.6.2 连接所有元素 3.6.3 测试 3.7 小结 第4章 更丰富的用户界面 4.1 满是控件的屏幕 4.2 活动、静态和被动控件 4.3 创建应用程序 4.3.1 导入图像 4.3.2 实现图像视图和文本字段 4.3.3 添加图像视图 4.3.4 添加文本字段 4.3.5 设置第二个文本字段的属性 4.3.6 连接输出口 4.4 构建和运行 4.4.1 完成输入后关闭键盘 4.4.2 通过触摸背景关闭键盘 4.5 实现滑块和标签 4.5.1 确定输出口 4.5.2 确定操作 4.5.3 添加输出口和操作 4.5.4 添加滑块和标签 4.5.5 连接操作和输出口 4.6 实现开关、按钮和分段控件 4.6.1 确定输出口 4.6.2 确定操作 4.6.3 添加开关、按钮和分段控件 4.6.4 连接开关输出口和操作 4.6.5 添加按钮 4.7 实现操作表和警报 4.7.1 遵从操作表委托方法 4.7.2 显示操作表 4.7.3 操作表委托和创建警报 4.8 美化按钮 4.8.1 viewDidLoad方法 4.8.2 控件状态 4.8.3 可拉伸图像 4.9 成为出色的内存使用者 4.10 小结 第5章 自动旋转和自动调整大小 5.1 使用自动调整属性处理旋转 5.1.1 指定旋转支持 5.1.2 使用自动调整属性设计界面 5.1.3 自动调整属性 5.1.4 设置按钮的自动调整属性 5.2 在旋转时重构视图 5.2.1 声明和连接输出口 5.2.2 在旋转时移动按钮 5.3 切换视图 5.3.1 确定输出口 5.3.2 确定动作 5.3.3 声明动作和输出口 5.3.4 设计两个视图 5.3.5 实现交换和动作 5.4 小结 第6章 多视图应用程序 6.1 View Switcher应用程序 6.2 多视图应用程序的体系结构 6.3 构建View Switcher 6.3.1 创建视图控制器和nib文件 6.3.2 修改应用程序委托 6.3.3 SwitchViewController.h 6.3.4 修改MainWindow.xib 6.3.5 编写SwitchViewController.m 6.3.6 实现内容视图 6.4 制作转换动画 6.5 小结 第7章 标签栏与选取器 7.1 Pickers应用程序 7.2 委托和数据源 7.3 建立工具栏框架 7.3.1 创建文件 7.3.2 添加根视图控制器 7.4 实现日期选取器 7.5 实现单个组件选取器 7.5.1 声明输出口和操作 7.5.2 构建视图 7.5.3 将控制器实现为数据源和委托 7.6 实现多组件选取器 7.6.1 声明输出口和操作 7.6.2 构建视图 7.6.3 实现控制器 7.7 实现独立组件 7.8 使用自定义选取器创建简单游戏 7.8.1 编写控制器头文件 7.8.2 构建视图 7.8.3 添加图像资源 7.8.4 实现控制器 7.8.5 spin方法 7.8.6 viewDidLoad方法 7.8.7 最后的细节 7.8.8 链接Audio Toolbox框架 7.9 小结 第8章 表视图简介 8.1 表视图基础 8.2 实现一个简单的表 8.2.1 设计视图 8.2.2 编写控制器 8.3 添加一个图像 8.4 附加配置 8.4.1 设置缩进级别 8.4.2 处理行的选择 8.4.3 更改字体大小和行高 8.4.4 委托还能做什么 8.5 定制表视图单元 8.5.1 单元应用程序 8.5.2 向表视图单元添加子视图 8.5.3 使用UITableViewCell的自定义子类 8.6 分组分区和索引分区 8.6.1 构建视图 8.6.2 导入数据 8.6.3 实现控制器 8.6.4 添加索引 8.7 实现搜索栏 8.7.1 重新考虑设计 8.7.2 深层可变副本 8.7.3 更新控制器头文件 8.7.4 修改视图 8.7.5 修改控制器实现 8.8 小结 第9章 导航控制器和表视图 9.1 导航控制器 9.1.1 栈的性质 9.1.2 控制器栈 9.2 由6个部分组成的分层应用程序:Nav 9.3 构建Nav应用程序的骨架 9.3.1 创建第一级视图控制器 9.3.2 设置导航控制器 9.4 第一个子控制器:展示按钮视图 9.5 第二个子控制器:校验表 9.6 第三个子控制器:表行上的控件 9.7 第四个子控制器:可移动的行 9.7.1 编辑模式 9.7.2 创建一个新的二级控制器 9.8 第五个子控制器:可删除的行 9.9 第六个子控制器:可编辑的详细窗格 9.9.1 创建数据模型对象 9.9.2 创建控制器 9.9.3 创建详细视图控制器 9.10 其他内容 9.11 小结 第10章 应用程序设置和用户默认设置 10.1 设置束 10.2 AppSettings应用程序 10.3 创建项目 10.4 使用设置束 10.4.1 在项目中添加设置束 10.4.2 设置属性列表 10.4.3 添加文本字段设置 10.4.4 添加安全文本字段设置 10.4.5 添加多值字段 10.4.6 添加拨动开关设置 10.4.7 添加滑块设置 10.4.8 添加子设置视图 10.5 读取应用程序中的设置 10.6 更改应用程序中的默认设置 10.7 小结 第11章 基本数据持久性 11.1 应用程序的沙盒 11.1.1 获取Documents目录 11.1.2 获取tmp目录 11.2 文件保存策略 11.2.1 单个文件持久性 11.2.2 多个文件持久性 11.3 持久保存应用程序数据 11.4 持久性应用程序 11.4.1 创建持久性项目 11.4.2 设计持久性应用程序视图 11.4.3 编辑持久性类 11.4.4 对模型对象进行归档 11.4.5 实现NSCopying 11.5 归档应用程序 11.5.1 实现FourLines类 11.5.2 实现PersistenceView-Controller类 11.6 使用iPhone的嵌入式SQLite3 11.7 使用Core Data 11.7.1 实体和托管对象 11.7.2 键/值编码 11.7.3 在上下文中结合它们 11.7.4 创建新托管对象 11.7.5 检索托管对象 11.7.6 设计数据模型 11.7.7 创建持久视图和控制器 11.7.8 将持久视图控制器设置为应用程序的根控制器 11.8 小结第12章 使用Quartz和OpenGL绘图 12.1 图形世界的两个视图 12.2 本章的绘图应用程序 12.3 Quart绘图方法 12.3.1 Quartz 2D的图形上下文 12.3.2 坐标系 12.3.3 指定颜色 12.3.4 在上下文中绘制图像 12.3.5 绘制形状:多边形、直线和曲线 12.3.6 Quartz 2D工具示例:模式、梯度、虚线模式 12.4 构建QuartzFun应用程序 12.4.1 创建随机颜色 12.4.2 定义应用程序常量 12.4.3 实现QuartzFunView框架 12.4.4 向视图控制器中添加输出口和操作 12.4.5 更新QuartzFunViewContro-ller.xib 12.4.6 绘制直线 12.4.7 绘制矩形和椭圆形 12.4.8 绘制图像 12.4.9 优化QuartzFun应用程序 12.5 一些OpenGL ES基础知识 12.5.1 构建GLFun应用程序 12.5.2 设计Nib、添加框架、运行应用程序 12.6 小结 第13章 轻击、触摸和手势 13.1 多触摸术语 13.2 响应者链 13.3 多触摸体系结构 13.4 触摸浏览器应用程序 13.5 Swipes应用程序 13.6 实现多个轻扫动作 13.7 检测多次轻击 13.8 检测捏合操作 13.9 自己定义手势 13.10 小结 第14章 使用Core Location定位功能 14.1 位置管理器 14.1.1 设置所需的精度 14.1.2 设置距离筛选器 14.1.3 启动位置管理器 14.1.4 更明智地使用位置管理器 14.2 位置管理器委托 14.2.1 获取位置更新 14.2.2 使用CLLocation获取纬度和经度 14.2.3 错误通知 14.3 尝试使用Core Location 14.3.1 更新位置管理器 14.3.2 确定移动距离 14.4 小结 第15章 加速计 15.1 加速计物理学 15.2 访问加速计 15.2.1 UIAcceleration 15.2.2 实现accelerometer: didAccelerate:方法 15.3 摇动与击碎 15.3.1 用于击碎的代码 15.3.2 加载模拟文件 15.3.3 完好如初——复原触摸 15.4 滚弹珠程序 15.4.1 实现Ball View控制器 15.4.2 编写Ball View 15.4.3 计算小球运动 15.5 小结 第16章 iPhone照相机和照片库 16.1 使用图像选取器和UIImagePicker-Controller 16.2 实现图像选取器控制器委托 16.3 实际测试照相机和库 16.3.1 设计界面 16.3.2 实现照相机视图控制器 16.4 小结 第17章 应用程序本地化 17.1 本地化体系结构 17.2 使用字符串文件 17.3 现实中的iPhone:本地化应用程序 17.3.1 查看当前区域设置 17.3.2 测试LocalizeMe 17.3.3 本地化nib文件 17.3.4 查看本地化的项目结构 17.3.5 本地化图像 17.3.6 本地化应用程序图标 17.3.7 生成和本地化字符串文件 17.4 小结 第18章 未来之路 18.1 别陷进单一的思路里 18.1.1 苹果公司的文档 18.1.2 邮件列表 18.1.3 论坛 18.1.4 网站 18.1.5 博客 18.1.6 Dave和Jeff的博客及Twitter 18.1.7 参考图书 18.1.8 如果仍未解决问题 18.2 再会
章节摘录
插图:在Evenlts栏下,可以看到能够潜在地触发操作的所有事件列表。如果愿意,你可以将不同的操作与不同的事件关联在一起。举例来说,可以使用Youch Up Inside来触发某操作,而使用TouchDrag Inside触发不同的操作。我们的情况相对比较简单和直接。当用户按下按钮时,我们希望它调用buttonPressed:方法。第一个问题是,应该使用图3.12中的哪个事件?答案是Touch Up Inside。当用户的手指离开屏幕时,如果他最后触摸的位置在按钮内部,则用户将触发一个Touch Up Inside事件。试想,在大多数iPhone用程序中,如果在触摸屏幕时改变了主意,你通常会把手指从按钮处移开,然后再离开屏幕,对吗?我们应该让用户具备相同的能力。如果用户的手指在离开屏幕之前仍然位于按钮上,那么可以放心地假设该按钮单击操作是故意的。知道触发操作的事件之后,应该如何将事件与具体的操作方法相关联呢?看到检查器中位于Touch Up Inside右侧的小圆圈了吗?单击该圆圈并拖动鼠标,这次不需要按下Control键。应该可以看到一条灰色连接线,这与前面连接输出口时的情况一样。将此线拖动到File's Owner图标上,从弹出的灰色小菜单中选择buttonPressed:。记住,File's Owner图标代表的是我们正在编辑的nib文件的类。在本例中,File’s Owner表示应用程序中BuCton-FunView-Controller类的唯一一个实例。当我们从选定按钮的事件拖到File's Owner图标之后,InterfaceBuilder会知道在指定事件发生时调用选定方法。因此,当用户的手指离开按钮时,将调用Button FunViewController类的buttonPressed:方法。
媒体关注与评论
“Jeff和Dave出色地完成了探索iPhoneDev SDK的任务。本书是iPhoneDev SDK开发当之无愧的最佳资源。开发人员将深深地被本书吸引,本书的实用性将在他们创建新的iPhone应用程序时体现出来。如果你是一名对此新兴平台感兴趣的开发人员,怎能错过这本书呢。” ——Chris Stewarl,著名开发社区iPhoneDevSDK.com创始人“如果你打算编写iPhone程序,请从这里开始。Dave和Jeff知道你需要什么,也知道如何教你掌握所需知识。我对本书覆盖的内容之广感到非常惊讶。书中不仅涵盖了操作照相机等有趣的内容,还讨论了本地化等现实世界中的开发问题。” ——Mark Dalrynlpie,著名Apple开发组织CocoaHeads创始人之一,《Objective-C基础教程)的作者
编辑推荐
《iphone3开发基础教程》是Amazon计算机榜首图书,创造销售奇迹的经典著作,针对iPhoe SDK 3新特性全面改版,从这里,拥抱软件开发的未来。Apple公司的iPflone开创了移动平台新纪元!而最新版iPhone 3做了不少改进,如强化应用程序对GPS的支持,还增加了众多新功能,如全系统搜索、支持复制和粘贴、收发多媒体信息等。iPhone 3与App Store的绝配为全世界的程序员提供了一个施展才华的全新大舞台。只要有新奇的创意,你完全有可能像开发iStloot游戏的Ethan Nicliolas(日收入2万多美元)和开发Trism游戏的Steve Demmeter(月收入超过10万美元)那样,单枪匹马即可赢得全球市场,成功创业,改变自己的人生。上一版英文原版问世以来在Anlazor、计算机图书排行榜持续雄踞榜首,总排名一度在20名左右,被奉为经典。而中文版出版后也迅速荣登各大网店排行榜榜首,并创造了半年内印刷四次的销售奇迹。书中从到Apple网站注册账号,下载和安装免费iPhone SDK开始,清晰透彻地讲述了创建iPhone应用程序的全过程。作者在探讨基本概念和各个关键特性(iPhone界面元素、数据保存、SQLite3、Quarrtz和OpenGL ES、手势支持、本地化、Core Location等)时,提供了丰富的实例。更难得的是,《iphone3开发基础教程》始终强调iPhone开发中的各种最佳实践,即使是有经验的开发人员,也会因此受益匪浅。《iphone3开发基础教程》新版针对iPhone SDK 3做了大幅修订,力求使新老读者都能觉得物有所值。作者在纠正上一版错误的基础上,不仅更新了所有项目代码,使之兼容新旧SDK,还新增了不少内容,进一步阐明一些读者反馈的比较难懂的主题。此外,书中还为Core Data增加了一个新项目。立即展卷阅读,开始神奇的iPhone开发之旅吧。
图书封面
图书标签Tags
无
评论、评分、阅读与下载