标题：iPhone iPad企业应用和游戏开发
图书信息?
iOS软件开发揭密：iPhone&iPad企业应用和游戏开发?
虞斌著
ISBN 978-7-121-13302-2
  2011年5月出版
定价：79.00元（含DVD光盘1张）
16开?
440页
宣传语?
掌握iPhone&iPad开发核心技术，
让普通开发者创造财富神话！
内 容 简 介?
本书以严密的体系性提供了iPhone和iPad软件开发从入门到专家的系统性知识，并提供来源于真实项目的可重用商业代码。书中的每个实例都是项目经验的提炼，深入浅出地讲解iPhone和iPad软件开发的核心技术要点，基本涵盖了iOS软件开发在真实商业项目中所需要的所有主题，并将实例介绍的技术深度和超值的实用性结合在一起，成为本书的特色。随书附赠的光盘中包含了书中大量案例的完整工程源代码，可以让读者参考学习。
本书既可以作为大学教材、企业培训教材，亦可作为苹果技术专业参考书籍，适合大学师生、企业管理人员、开发人员、培训机构教师和学员、IT业界人士等参考和阅读。
未经许可，不得以任何方式复制或抄袭本书之部分或全部内容。
版权所有，侵权必究。
序
“Even if I knew that tomorrow the world would go to pieces, I would still plant my apple tree.”
“即使我知道明天的世界会垮掉，我还是会种下我的苹果树。”
——马丁?路德
苹果公司（NASDAQ：AAPL，以前名为苹果电脑公司）是一家历史悠久的美国跨国公司，设计和销售消费电子产品、计算机软件和个人电脑。苹果公司于1976年4月1日在加州Upertino成立，早期主要销售Macintosh系列个人电脑和各种相关软件，2007年1月9日，苹果公司发布了具有里程碑意义的iPhone手机，彻底改变了移动电话业务。从运营商手中夺取权力，交给制造商、开发商和消费者，iPhone完全改变了运营商和制造商的行为，其崭新的商业模式改变了移动业务的游戏规则，截至2008年6月，App Store汇集了30万个苹果批准的“应用程序”，App Store赋予了缺少市场运作能力的第三方开发商和草根开发者新的商业机会，让开发商和个体开发者编写软件，而市场和销售则交给苹果公司管理。在App Store商业模式的推动下，iPhone以其创新的产品特性获得了巨大的市场成功，随着个人消费电子市场的不断扩展，苹果公司于2010年4月又发布了具有各种创新特性的iPad个人平板电脑，在iPad发布后的80天内即销售了3万台设备，iPad、iPhone、iPod Touch使用相同的操作系统iOS，这给开发者带来极大的便利。其实，苹果公司早在1993年就开始了iPad平板电脑的研发，直到2010年才最终将其推出市场，iPad的推出也宣告了个人平板电脑时代的到来，人们将以崭新的方式来使用互联网、操作电脑游戏和阅读电子图书。
苹果公司在全球范围内始终具有独特的影响力，是IT界最重要的品牌之一，特别是随着iPhone和iPad的发布，苹果公司在个人消费电子市场更是具有执掌牛耳的影响力。无论是对苹果公司的赞誉还是批评，研究、借鉴苹果公司产品的综合审美设计、独特的广告活动、市场销售和商业模式以及公司经营理念都是IT界不可忽视的重要课题，在进行产品设计、广告宣传、软件研发等各方面都具有重要的借鉴意义。
本书既可以作为培训教材，也可以作为苹果软件商业项目开发实战参考用书，让想要了解苹果技术的大学、企业、培训机构和个人对苹果技术有一个系统的认识，并掌握iPhone和iPad软件开发涉及的主要核心技术，在进行iOS相关企业应用软件和游戏的开发时具备相应的技术基础、核心知识和参考实例。
前 言?
随着iPhone和iPad在中国的上市，国内iPhone、iPad用户急剧增加，加剧了iPhone软件市场的增长，学习和掌握苹果开发技术已经成为企业、大学计算机学院、软件学院不可或缺的一个重要方向。学习和掌握苹果iOS软件开发技术是大势所趋，国内有的大学已经将iOS软件开发作为新开课程方向，市面上做iOS软件开发培训的公司都是获取高额利润的公司，学员收费竟高达五位数以上，有经验的开发者花一天时间做一个非常小的iPhone或者iPad软件就可以轻松赚取几百到几千美元。
本书的目的是让初学者能够系统地学习iPhone开发的基础知识，让你在学习iPhone软件开发的过程中少走弯路，掌握技术精要，使你能够快速步入iPhone开发的殿堂，同时也为有经验的开发者提供实用的编程技巧、思路和参考实例。这些宝贵的实例是在进行iPhone开发时需要的第一手素材，是你在实际开发iPhone软件遇到问题时最珍贵的资源，有效使用这些资源能让你快速解决问题，实现软件需要的功能，节约宝贵的时间。本书系统地介绍了iPhone和iPad软件开发的基础知识、技术精要、实用的编程技巧、思路和参考实例，涵盖了iOS软件开发的各种核心技术，包括企业应用和游戏开发。书中的每个实例、每个技术要点都来自真实的商业项目，这些精选的主题是进行iOS软件开发时必须掌握的核心内容。
本书的内容是来自实践的核心技术讲解，不同于玩具代码或者普通的教学代码，玩具代码或者普通的教学代码不能让读者真正完成真实商业项目的开发。
本书既可以作为大学教材、企业培训教材，亦可作为苹果技术专业参考书籍，适合大学师生、企业管理人员、开发人员、培训机构教师和学员、IT业界人士等参考和阅读。
本书的出版得到了电子工业出版社的大力支持，在此感谢电子工业出版社编辑林瑞和、张丹阳为本书出版所做的大量工作，感谢美术编辑李玲为本书设计的精美封面，同时也感谢其他所有参与本书出版工作的朋友们。
目 录?
第1章 iPhone开发环境设置1
1.1 安装雪豹操作系统2
1.2 安装iPhone SDK5
1.3 无证书开发环境Xcode设置7
1.4 有证书开发环境Xcode设置11
1.5 安装源代码版本管理工具12
1.6 安装Wine12
1.7 使用Wine安装Source Insight13
1.8 相关网络资源14
第2章 Objective-C编程基础15
2.1 Objective-C介绍16
2.2 第一个iPhone程序16
2.3 Objective-C基本类型17
2.3.1 id17
2.3.2 SEL17
2.3.3 BOOL18
2.3.4 nil、NULL和NSNull18
2.4 常量声明和预处理宏20
2.5 使用#import包含头文件22
2.6 使用#pragma mark分隔代码块22
2.7 Objective-C内存管理：retain和release22
2.8 字符串操作26
2.8.1 字符串常量26
2.8.2 获取子字符串27
2.8.3 合并和格式化字符串28
2.8.4 分隔字符串28
2.8.5 NSString和char*之间的转换29
2.8.6 字符串比较29
2.9 处理数值对象30
2.10 处理日期时间NSDate31
2.11 处理NSData类型32
2.12 集合操作32
2.12.1 数组操作：NSArray和NSMutableArray32
2.12.2 字典操作：NSDictionary和NSMutableDictionary42
2.12.3 集合操作：NSSet和NSMutableSet47
2.12.4 堆栈操作49
2.13 面向对象编程：类、实例和消息50
2.13.1 类定义50
2.13.2 类构造和构析函数51
2.13.3 Singleton模式53
2.13.4 @class、@protocol前向声明53
2.13.5 self和super54
2.13.6 实例方法和类方法54
2.13.7 对象属性（@property）55
2.13.8 静态属性（static attributes）58
2.14 类扩展（Class Categories）59
2.15 Objective-C接口编程60
2.15.1 接口编程之@protocol60
2.15.2 接口编程之后台线程63
2.15.3 接口编程之Notifications65
2.15.4 接口编程之NSOperationQueue68
2.15.5 接口编程之私有方法69
2.15.6 接口编程之静态库隐藏类70
2.15.7 接口编程之@protocol封装类72
2.15.8 接口稳定性和接口继承73
2.16 定时器（NSTimer）编程77
2.17 序列化和反序列化78
2.17.1 序列化方法之Property List78
2.17.2 序列化方法之NSKeyedArchiver78
2.17.3 序列化方法之Core Data79
2.18 Objective-C和C、C++混合编程80
2.19 消息和NSInvocation87
2.20 方法混合（Method Swizzling）90
2.21 使用NSAssert进行代码调试93
2.22 本章总结93
2.23 参考书籍93
第3章 iPhone SDK开发基础95
3.1 iPhone SDK介绍96
3.2 第一个iPhone 界面程序99
3.3 iPhone程序启动过程105
3.4 iPhone程序生命周期107
3.5 掌握iPhone程序通信中心UIApplication和UIApplicationDelegate110
3.6 iPhone坐标系统111
3.7 UIView层次管理116
3.8 触控（Touch）测试120
3.9 多点触控（MultiTouch）和物体移动122
3.10 UIView旋转和缩放125
3.11 UIScrollView编程127
3.12 iPhone程序框架129
3.12.1 使用UINavigationController组织和管理UIView130
3.12.2 使用UITabBarController组织和管理UIView130
3.12.3 使用UISplitViewController组织和管理UIView133
3.13 旋转屏幕（Screen Rotations）135
3.14 掌握UIButton编程138
3.15 管理界面字体139
3.16 使用UILabel管理界面文本141
3.17 管理界面颜色143
3.18 界面风格（TRANSITIONING STYLES）148
3.19 单词排序表格编程149
3.20 NSUserDefaults和Property List文件150
3.21 文件系统和外部资源管理152
3.22 简单动画制作155
3.23 闪屏制作——程序启动动画157
3.24 多行文本输入控件制作159
3.25 图片处理162
3.26 Core Audio编程163
3.27 UITableView编程165
3.28 UISegmentedControl编程167
3.29 OpenFlow编程169
3.30 UIPageControl编程172
3.31 自定义仪表控件175
3.32 本章总结180
第4章 iPhone SDK高级编程181
4.1 Base64编解码182
4.2 Web Service和XML数据解析183
4.3 JSON数据解析184
4.4 掌握SQLite管理用户数据187
4.5 缓存（Caching）及Core Data数据管理191
4.6 使用AES算法进行数据加解密207
4.7 电子商务安全基础——RSA算法和数据加密210
4.7.1 开发.NET版本RSA算法库210
4.7.2 建立iPhone版本RSA算法库217
4.8 自定义用户界面控件制作220
4.8.1 ComboBox控件和UIPikerView设计220
4.8.2 自定义UIDatePicker制作224
4.9 UIWebView和JavaScript高级编程229
4.10 本章总结236
第5章 iPhone企业应用实例分析237
5.1 综合应用概述238
5.2 系统介绍238
5.3 系统需求和主要用例239
5.4 程序处理流程241
5.5 主要实现类和相互关系242
5.6 程序框架分析244
5.7 技术要点分析249
5.7.1 异步网络通信249
5.7.2 Core Data缓存数据252
5.7.3 RSA算法加解密258
5.7.4 自定义控件制作258
5.7.5 表格控件定制260
5.7.6 自定义UIToolbar266
5.7.7 目录浏览器制作268
5.7.8 文件上传和下载273
5.8 本章总结277
第6章 iPad软件开发基础279
6.1 iPad软件开发介绍280
6.2 UISplitViewController编程280
6.3 UIPopoverController编程287
6.4 定制MPMoviePlayerController进行视频播放290
6.5 开发调色板（Palette）控件294
6.6 发送邮件296
6.7 Google地图编程297
6.8 本章总结314
第7章 iPad商业软件实例分析317
7.1 综合应用概述318
7.2 系统介绍318
7.3 系统需求和主要用例319
7.4 程序处理流程321
7.5 主要实现类和相互关系321
7.6 程序框架323
7.7 技术要点分析335
7.7.1 图片分页和滚动显示335
7.7.2 动态管理多国语言界面340
7.7.3 播放网络视频341
7.8 本章总结344
第8章 iOS游戏开发基础345
8.1 概述346
8.2 cocos2d系统介绍346
8.3 cocos2d编程基础349
8.3.1 第一个cocos2d程序349
8.3.2 基本动画353
8.4 Box2D物理引擎356
8.4.1 核心概念356
8.4.2 碰撞检测357
8.5 Chipmuck物理引擎361
8.5.1 重要概念361
8.5.2 物理模拟和碰撞检测363
8.6 粒子系统365
8.6.1 轨道卫星（Orbit Satellite）366
8.6.2 太空陨石（Space Rocks）367
8.7 本章总结369
第9章 iOS商业游戏实例分析371
9.1 概述372
9.2 闪回（Flash Back）372
9.3 法术的释放（Ghost Castle）376
9.3.1 GhostCastle中的Tile Map管理378
9.3.2 cocos2d中的Tile Map管理381
9.4 甜蜜的梦（Sweet Dreams）384
9.5 毁灭之战（RavagedByWar）391
9.5.1 A*算法392
9.5.2 毁灭之战中的A*算法实现397
9.6 吹吹鱼（PuffPuff）399
9.7 本章总结403
第10章 iPhone软件发布405
10.1 App Store概述406
10.2 iPhone软件发布步骤406
10.3 ipa安装包制作410
10.4 iOS配置文件和Settings系统编程411
10.5 本章总结415
附录417