本书建立在《iOS开发项目化入门教程》之上,系统地讲解了iOS开发中的高级知识,包括多线程、网络、iPad开发、多媒体硬件、Address Book、地图开发、推送机制、自购、广告、指纹识别、自动布局和国际化等。
本书不局限于iOS高级开发的理论知识,而是采用项目驱动的方式来讲授理论,全书有五十余个真实项目,这些项目可以帮助读者更好地理解各个知识点在实际开发中的应用,也可以供读者开发时作为参考。
本教材附有配套视频、源代码、习题、教学课件等资源,而且为了帮助初学者更好地学习本教材中的内容,还提供了在线答疑,希望得到更多读者的关注。
本书既可作为高等院校本、专科计算机相关的程序设计课程教材,也可作为iOS技术提升的培训教材,是一本适合广大计算机编程初学者的入门级教材。
1、知识丰富,覆盖面广
本书站在真实开发的角度,涵盖了iOS开发的高级知识,包括网络、多线程、iPad开发、音频、视频、相机图库、二维码、传感器、陀螺仪、加速器、Address Book开发、推送机制、内购、指纹识别、广告、地图开发、自动布局、国际化等。本书中的大多数知识点是在实际开发中经常用到的。
2、超多、适用、专业的项目
本书采用“项目驱动”的方式,采用灵活的方式对知识点进行了阐述,全书近五十多个项目,几乎每个知识点都可以找到对应的项目。比如,音乐播放器、计步器、行车导航仪、百度地图开发等真实的应用,具有极高的参考价值。~
3、讲解详细,步骤清晰
本书保持“让IT学习更简单,让IT学习更有效”的一贯风格,在对每个知识点进行讲解时,都会明确需求,理清编程思路,通过详细的步骤和通俗的语言,让读者在编程时,知其然,更要知其所以然。
4、教材、资源、服务三合一,高效学习
本书配套了多种资源供广大师生使用,另外,不管您是老师还是学生,使用我们的教材、资源过程中,遇到任何问题,都可以联系我们,我们的服务是既贴心又专业的。
第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