标题：iOS软件开发揭密
内容简介
本书以严密的体系性提供了iPhone和iPad软件开发从入门到专家的系统性知识，并提供来源于真实项目的可重用商业代码。书中的每个实例都是项目经验的提炼，深入浅出地讲解iPhone和iPad软件开发的核心技术要点，基本涵盖了iOS软件开发在真实商业项目中所需要的所有主题，并将实例介绍的技术深度和超值的实用性结合在一起，成为本书的特色。
随书附赠的光盘中包含了书中大量案例的完整工程源代码，可以让读者参考学习。
本书既可以作为大学教材、企业培训教材，亦可作为苹果技术专业参考书籍，适合大学师生、企业管理人员、开发人员、培训机构教师和学员、IT业界人士等参考和阅读。
作者简介
虞斌：高级系统架构师，企业IT服务高级顾问，软件开发专家，有着极为丰富的工程项目背景，技术领域涵盖了从芯片设计，微控制器/嵌入式系统设计和开发，手机/移动设备，到网络安全设备,高性能网站和大型企业应用的系统架构设计和开发。专业架构设计技术顾问，项目管理和软件质量保证专家,主要研究实时系统（RTOS），手机软件和游戏, 及信息安全相关领域,并提供相关产品和解决方案，是集软硬件专业技术和现代企业管理于一身的优秀复合型人才。作为Scrum敏捷过程管理高级顾问，精益软件开发和软件架构培训讲师，独立设计并开发了( ClearWorks )精益研发平台，帮助企业改进他们的软件开发方式。经过多年的技术积淀后, 创建了成都金可果软件有限公司, 从事iPhone, iPad,Android,Windows Phone,Symbain等移动平台的游戏和手机软件产品开发。除了手机软件和游戏业务以外,公司也涉及微电子系统,嵌入式系统,电子产品和设备的系统技术架构咨询和方案设计服务。在高性能电子商务网站，社交网络和大型企业应用方面，公司也提供技术咨询以及开发服务。
目录
第1章 iPhone开发环境设置 11.1 安装雪豹操作系统 2
1.2 安装iPhone SDK 5
1.3 无证书开发环境Xcode设置 7
1.4 有证书开发环境Xcode设置 11
1.5 安装源代码版本管理工具 12
1.6 安装Wine 12
1.7 使用Wine安装Source Insight 13
1.8 相关网络资源 14
第2章 Objective-C编程基础 152.1 Objective-C介绍 16
2.2 第一个iPhone程序 16
2.3 Objective-C基本类型 17
2.3.1 id 17
2.3.2 SEL 17
2.3.3 BOOL 18
2.3.4 nil、NULL和NSNull 18
2.4 常量声明和预处理宏 20
2.5 使用#import包含头文件 22
2.6 使用#pragma mark分隔代码块 22
2.7 Objective-C内存管理：retain和release 22
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 处理日期时间NSDate 31
2.11 处理NSData类型 32
2.12 集合操作 32
2.12.1 数组操作：NSArray和NSMutableArray 32
2.12.2 字典操作：NSDictionary和NSMutableDictionary 42
2.12.3 集合操作：NSSet和NSMutableSet 47
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和super 54
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 接口编程之@protocol 60
2.15.2 接口编程之后台线程 63
2.15.3 接口编程之Notifications 65
2.15.4 接口编程之NSOperationQueue 68
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 List 78
2.17.2 序列化方法之NSKeyedArchiver 78
2.17.3 序列化方法之Core Data 79
2.18 Objective-C和C、C++混合编程 80
2.19 消息和NSInvocation 87
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和UIApplicationDelegate 110
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组织和管理UIView 130
3.12.2 使用UITabBarController组织和管理UIView 130
3.12.3 使用UISplitViewController组织和管理UIView 133
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 自定义UIToolbar 266
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[1]