本书系统全面地讲解了iOS开发的中、高级知识,主要内容包括多线程编程、网络编程、iPad开发、多媒体硬件、Address Book、使用Mapkit开发地图服务、推送机制、内购、广告、指纹识别、屏幕适配及国际化等。
本书采用项目驱动的方式来讲授理论。全书共有60余个经典的真实项目,这些项目可以帮助读者更好地理解各个知识点在实际开发中的应用,也可以供读者开发时作为参考。
本书附有配套视频、源代码、习题、教学课件等资源,而且为了帮助初学者更好地学习本教材中的内容,我们还提供了在线答疑,希望得到更多读者的关注。
本书既可作为高等院校本、专科计算机相关的程序设计课程教材,也可作为iOS技术提升的培训教材,适合有一定iOS开发基础的读者使用。
传智播客移动应用开发系列图书之一,本书采用项目化的方式,围绕着iOS的中、高级开发展开讲解。本书配套PPt、视频、源代码、教学大纲、课后习题及答案等学习资源。
传智播客成立于2006年,它是由中国Java培训第一人张孝祥老师发起,联合全球*大的中文IT社区CSDN、中关村软件园共同创办的一家专业教育机构。办学至今,传智播客已成立10年,在这10年期间,我们一直坚守着“为千万人少走弯路而著书,为中华软件之崛起而讲课”的办学理念,坚持培养优秀软件应用工程师的宏伟目标,在累计培养的十万余名学员中,其中90%的学员均已在北、上、广等一线城市高薪就业,特别是“黑马程序员”的平均就业薪资已达到8K以上。为了迎合软件市场的需求,10年期间,我们陆续开设了Java、网页平面、PHP、.Net、iOS、C/C++六个专业方向的课程,并且未来将逐渐开设其他专业方向的课程。随着传智播客的日益壮大,除了北京总部,我们在上海、广州、武汉、成都、深圳等地也创立了直营分支机构,传智播客俨然已成为了国内*具专业口碑的IT教育机构。
第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