第1章 多线程编程 1
1.1 多线程概念 1
1.1.1 多线程概述 1
1.1.2 线程的串行和并行 4
1.1.3 多线程技术种类 5
1.2 使用NSThread实现多线程 5
1.2.1 线程的创建和启动 5
1.2.2 线程的状态 9
1.2.3 线程间的安全隐患 11
1.2.4 线程间的通信 15
1.3 使用GCD实现多线程 17
1.3.1 GCD简介 17
1.3.2 创建队列 19
1.3.3 提交任务 20
第2章 网络编程 51
2.1 网络基本概念 51
2.1.1 网络编程的原理 51
2.1.2 URL介绍 52
2.1.3 TCP/IP和TCP、UDP 53
2.1.4 Socket介绍 55
2.1.5 实战演练——Socket聊天 57
2.2 原生网络框架NSURLConnection 62
2.2.1 NSURLRequest类 62
2.2.2 NSURLConnection介绍 63
2.2.3 Web视图 65
2.2.4 实战演练——Web视图加载
百度页面 67
2.3 数据解析 70
2.3.1 配置Apache服务器 70
2.3.2 XML文档结构 74
2.3.3 解析XML文档 75
2.3.4 实战演练——使用NSXMLParser
解析XML文档 75
2.3.5 JSON文档结构 87
2.6.1 SDWebImage介绍 127
2.6.2 AFNetworking和ASIHTTPRequest
第3章 iPad开发 135
3.1 iPhone和iPad开发的异同 135
3.2 UIPopoverController 137
3.2.1 UIPopoverController简介 137
3.2.2 UIPopoverController的使用 139
3.2.3 实战演练——弹出Popover视图 142
第4章 多媒体和硬件 173
4.1 使用AVAudioRecorder录制音频 173
4.2 音效、音频的播放 176
4.2.1 使用系统声音服务播放音效 176
4.2.2 使用AVAudioPlayer播放音乐 177
4.2.3 使用MPMediaPickerController
选择系统音乐 180
4.2.4 播放在线音乐 182
4.2.5 实战演练——音乐播放器 185
4.3 相机和图库 193
4.3.1 使用UIImagePickerController
操作摄像头和照片库 193
4.3.2 实战演练——拍照和相片库 196
第5章 Address Book 220
5.1 iOS 7及iOS 8的联系人管理框架 220
5.1.1 使用Address Book框架管理联系人 220
5.1.2 使用Address BookUI框架管理联系人 225
5.2 实战演练——使用UIApplication
打电话和发短信 229
第6章 使用MapKit开发地图服务 244
6.1 根据地址定位 244
6.1.1 根据地址定位 245
6.1.2 正向地理编码和反向地理编码 249
6.2 MapKit框架 251
6.2.1 MKMapView控件 251
6.4 使用iOS 7新增的MKTile
Overlay覆盖层 262
6.5 使用iOS 7新增的MKDirections
获取导航路线 264
第7章 推送机制 279
7.1 推送机制概述 279
7.2 iOS本地通知 281
7.3 实战演练——闹钟 283
第8章 内购、广告和指纹识别 303
8.1 内购 303
8.1.1 在App Store上的准备工作 304
8.1.2 实现内购功能 318
第9章 屏幕适配 328
9.1 屏幕适配历史背景介绍 328
9.2 Autoresizing 330
9.2.1 在Interface Builder中使用
Autoresizing 330
9.2.2 在代码中设置AutoresizingMask
属性 333
9.3 Auto Layout 336
9.3.1 在Interface Builder中管理Auto Layout 336
9.3.2 实战演练——使用Auto Layout
布局界面 338
第10章 国际化 353
10.1 概述 353
10.2 国际化应用程序显示名称 355
10.3 国际化界面设计 359