基础篇 2
第1章 企业应用的话题 2
1.1 什么是企业应用 2
1.1.1 传统意义的企业应用 2
1.1.2 iOS企业应用 3
1.2 iOS企业应用程序的架构 3
1.2.1 服务端 4
1.2.2 iOS客户端 4
1.3 iOS企业应用程序的发布 5
1.3.1 iOS应用程序发布与App Store 5
1.3.2 Ad-Hoc与In-House发布 6
1.3.3 OTA无线部署 21
第2章 iOS开发框架简介 24
2.1 苹果iOS简介 24
2.2 iOS框架介绍 25
2.3 Cocoa Touch框架简介 25
2.4 搭建iOS开发环境 27
2.4.1 安装Mac OS X操作系统 27
2.4.2 下载安装SDK 33
2.5 写一个iPhone程序 33
2.6 在模拟器上运行应用程序 39
2.7 在iPhone上运行应用程序 39
第3章 Objective-C语法简介 42
3.1 Objective.C的C语言特性 42
3.1.1 一个简单的HelloWorld 42
3.1.2 Obietive.C是另一种C 43
3.1.3 数据类型 44
3.1.4 常量、变量和宏 50
3.1.5 #include和#import 51
3.1.6 函数 51
3.1.7 分支和循环 51
3.2 面向对象的C 51
3.2.1 类和对象 51
3.2.2 消息机制 54
3.2.3 Objective-C的内存管理 55
3.2.4 类别和协议 57
3.2.5 反射机制 59
3.2.6 谓词 62
3.3 MVC模式 65
3.4 KVO模型 65
3.4.1 注册KVO 66
3.4.2 接收变更通知 67
3.4.3 发送变更通知 67
3.5 块编程 68
3.5.1 块的特点 68
3.5.2 Objective-C中的块 69
3.6 可变参数 71
3.7 本章小结 73
第4章 Xcode集成开发环境 74
4.1 创建第一个Xcode应用程序 74
4.2 构成应用程序的那些东西 76
4.2.1 Info.plist和pch文件 76
4.2.2 Xib文件 77
4.2.3 资源文件 77
4.2.4 源代码文件 77
4.2.5 项目和目标 77
4.2.6 Frameworks 80
4.2.7 应用程序的文档目录和临时文件夹 81
4.3 了解Xcode为我们做了些什么 83
4.3.1 main.m 83
4.3.2 应用程序委托 84
4.4 在Xcode中添加View Controller 84
4.5 在Xcode中添加框架 89
4.6 Xcode使用技巧 90
4.6.1 自动完成 90
4.6.2 查找和替换 91
4.6.3 快速帮助 91
4.6.4 快照 91
4.6.5 书签 91
4.6.6 使用导航条 92
4.7 本章小结 92
第5章 Interface Builder 93
5.1 IB和xib、nib文件 93
5.2 初识IB 94
5.3 使用IB创建图形界面 95
5.3.1 控制器和视图 95
5.3.2 基本控件介绍 99
5.4 连接 100
5.4.1 IBOutlet连接 100
5.4.2 IBAction连接 102
5.4.3 委托连接 103
5.4.4 使用Assistant Editor创建连接 105
5.5 本章小结 106
第6章 高级图形界面 107
6.1 应用程序多视图的导航 107
6.1.1 UITabBarController 107
6.1.2 UINavigationController 110
6.1.3 窗体导航应用实例 114
6.2 表视图UITableViewController的应用及其扩展 116
6.2.1 简单的表视图控制器 116
6.2.2 UITableView的数据源和委托 117
6.2.3 分组表视图 119
6.2.4 可折叠的分组表视图 121
6.3 扩展UIKit 131
6.3.1 扩展日期挑选控件 131
6.3.2 扩展单选按钮和复选按钮 133
6.3.3 扩展下拉列表框 135
6.3.4 封装自己的控件库 137
6.4 翻页控件和翻页控制器 142
6.4.1 UIPageControl 143
6.4.2 UIPageViewController 147
6.5 本章小结 152
企业应用篇 154
第7章 网络 154
7.1 使用NSURLConnection获得网络数据 154
7.2 使用NSOperation进行异步请求 158
7.3 与网络相关的示例 163
7.4 ASIHTTPRequest框架介绍 166
7.4.1 发送同步请求 167
7.4.2 发送异步请求 168
7.4.3 文件上传 169
7.4.4 文件下载 172
7.4.5 Cookies和Sessions 176
7.5 编写自己的网络模块类 179
7.5.1 PostRequest类 179
7.5.2 NetworkModule类 181
7.5.3 测试NetworkModule 185
7.6 本章小结 186
第8章 XML和Json 188
8.1 Cocoa与XML解析 188
8.1.1 NSXMLParser 188
8.1.2 NSXMLParserDelegate 189
8.2 TBXML 190
8.3 libxml 191
8.3.1 在项目中使用libxml 192
8.3.2 libxml应用实例 192
8.4 GDataXML 202
8.5 Json和SBJson 218
8.5.1 在项目使用SBJson 218
8.5.2 SBJson使用示例 218
8.6 本章小结 219
第9章 保存用户数据 220
9.1 文件的持久化 220
9.1.1 保存到plist文件 220
9.1.2 NSUserDefaults 221
9.1.3 归档 224
9.2 数据库 226
9.2.1 嵌入式数据库SQLite3 226
9.2.2 使用Core Data 228
9.2.3 使用PLDatabase访问数据库 232
9.3 本章小结 236
第10章 安全 237
10.1 iOS安全框架简介 237
10.1.1 证书、密钥和信任服务 237
10.1.2 在iPhone中使用X.509证书 238
10.2 使用SSL和服务器通信 244
10.3 OpenSSL 245
10.3.1 在iOS中使用OpenSSL库 245
10.3.2 OpenSSL应用实例——使用OpenSSL进行MD5加密 248
10.4 CommonCrypto 250
10.5 本章小结 252
第11章 多媒体、绘图及动画 253
11.1 播放视频 253
11.2 播放音频 254
11.3 Quartz 2D 255
11.3.1 图形上下文 255
11.3.2 路径 256
11.3.3 变换 257
11.3.4 图案 261
11.3.5 阴影 262
11.3.6 渐变 263
11.3.7 透明图层 264
11.3.8 位图及遮罩 264
11.4 Core Animation 267
11.4.1 隐式动画 267
11.4.2 显式动画 268
11.5 本章小结 269
第12章 多点触摸及手势 270
12.1 手势识别器:UIGestureRecognizer类 270
12.2 创建手势识别器 272
12.3 实现图片的拖动及缩放 276
12.4 本章小结 279
第13章 本地化 280
13.1 iPhone的本地化支持 280
13.1.1 国家代码和语言代码 280
13.1.2 本地化文件夹的匹配 281
13.2 本地化应用程序 281
13.2.1 使用NSLocaledString本地化字符串 281
13.2.2 本地化图像 285
13.2.3 本地化xib文件 285
13.2.4 本地化应用程序名称 285
13.3 示例 285
13.4 本章小结 289
第14章 iOS多线程和并行编程 290
14.1 多线程 290
14.1.1 NSThread 291
14.1.2 RunLoop 293
14.2 并行编程 296
14.2.1 Dispatch Queue 296
14.2.2 将任务加入Dispatch Queue 297
14.2.3 Dispatch源 298
14.3 后台任务 301
14.4 本章小结 303
第15章 通知、本地通知和远程通知 304
15.1 通知 304
15.2 本地通知 307
15.3 远程通知 315
15.3.1 Apple Push简介 316
15.3.2 准备使用APNs 316
15.3.3 准备接收推送通知 320
15.3.4 创建Push Notification Provider 322
15.4 本章小结 325
第16章 开源框架Core Plot 327
16.1 编译Core Plot框架 327
16.2 使用Core Plot SDK 327
16.3 安装Core Plot帮助文档 328
16.4 图表的构成 329
16.5 类图 330
16.6 使用Core Plot绘制折线图 331
16.7 使用Core Plot绘制柱状图 335
16.7.1 绘制基本的柱状图 335
16.7.2 固定坐标轴 336
16.7.3 显示数据点的值 338
16.7.4 显示网格线 339
16.8 使用Core Plot绘制饼图 339
16.8.1 饼图的绘制 340
16.8.2 显示每个扇形的比例 341
16.8.3 剥离扇形 341
16.8.4 显示图例 342
16.8.5 响应事件 343
16.9 自定义Core Plot主题 343
16.10 本章小结 346
第17章 通讯簿、GPS和重力感应 347
17.1 通讯簿 347
17.1.1 Address Book UI 347
17.1.2 Address Book 348
17.1.3 联系人中文姓氏排序 350
17.2 GPS和CoreLocation 351
17.3 重力感应 353
17.4 地理编码 355
17.5 本章小结 356
实战篇 358
第18章 企业APN 358
18.1 企业APN的建设 358
18.2 iPhone与APN 359
18.3 配置描述文件 360
18.4 在iPhone上实现一个HTTP服务器 362
18.5 后台任务与无限后台任务 365
18.6 实现APN切换 368
18.7 检测网络状况 369
18.8 Safari阻塞 373
18.9 本章小结 377
第19章 iOS企业应用实战 378
19.1 应用场景与功能概述 378
19.2 应用程序架构 378
19.3 服务器端 378
19.3.1 环境搭建 378
19.3.2 实现登录接口 379
19.3.3 实现企业通讯簿接口 379
19.3.4 实现收件箱接口 380
19.3.5 实现附件上传接口 380
19.3.6 实现附件下载接口 380
19.4 iPhone客户端 381
19.4.1 实现登录 381
19.4.2 查看收件箱 383
19.4.3 邮件浏览 387
19.4.4 新建邮件 389
19.4.5 正文输入界面 391
19.4.6 通讯簿 392
19.4.7 附件文件的上传 397
19.5 本章小结 399