《疯狂iOS讲义 基础篇》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:李刚编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2016
  • ISBN:9787121287930
  • 页数:578 页
图书介绍:本书基于《疯狂iOS讲义(上)》第2版升级而来,已真正升级成Swift、Objective-C双语讲解。本书所有案例(除前面介绍Objective-C语法部分之外)全部都提供Swift、Objective-C两种语言的版本。本书以最新的iOS 9.2、Xcode 7.2为平台,全面介绍了iOS应用开发的基础知识。书中每个案例、每个截图都全面升级到iOS 9.2。本书全面、细致地介绍了Objective-C的面向对象语法、Foundation框架的核心类库用法、文件IO体系等,详细讲解了iOS应用开发的基本理论,以及iOS应用的MVC设计和事件处理编程,重点介绍了iOS界面编程、iOS应用的生命周期、Quartz 2D绘图、坐标变换、Core Image滤镜等内容,掌握这些基础内容之后,即可开发出基础的iOS App应用和简单的iOS游戏。本书最后介绍了一个疯狂连连看的实例。本书详细介绍了iOS 9新增的UIAlertController、UIStackView控件,其中UIStackView正是为了自适应不同尺寸屏幕而设计的控件,可用于取代早期iOS开发中的约束(约束实在是太难以管理了

第1章 多点触摸与手势检测 1

1.1 响应者链 2

1.2 响应触碰方法 3

1.3 使用手势处理器(UIGestureRecognizer) 3

1.3.1 使用UITapGestureRecognizer处理点击手势 4

1.3.2 使用UIPinchGestureRecognizer处理捏合手势 6

实例:通过捏合手势缩放图片 7

1.3.3 使用UIRotationGestureRecognizer处理旋转手势 9

实例:通过旋转手势旋转图片 9

1.3.4 使用UISwipeGestureRecognizer处理轻扫手势 11

实例:贪食蛇 13

1.3.5 使用UIPanGestureRecognizer处理拖动手势 19

1.3.6 使用UILongPressGestureRecognizer处理长按手势 21

实例:长按添加按钮 22

1.4 创建和使用自定义手势处理器 24

1.4.1 开发自定义手势处理器 24

1.4.2 使用自定义手势处理器 26

1.5 本章小结 27

第2章 国际化 28

2.1 iOS应用国际化的基础 29

2.1.1 iOS应用的国际化思路 29

2.1.2 国际化支持的语言和国家 31

2.2 国际化界面设计文件 32

2.3 国际化应用程序的显示名称 36

2.4 国际化图片 39

2.5 国际化文本 41

2.6 本章小结 43

第3章 iOS的数据存储 44

3.1 应用程序沙盒 45

3.1.1 获取Documents目录 47

3.1.2 获取tmp目录 47

3.1.3 文件保存策略思考 47

3.2 应用程序参数与用户默认设置 48

3.2.1 使用Settings Bundle 48

3.2.2 使用NSUserDefaults读取、保存应用程序参数 57

3.3 属性列表 62

实例:备忘录 62

3.4 对象归档和原生I/O API 66

3.5 使用SQLite 3数据库 66

3.5.1 iOS的SQLite编程 67

3.5.2 创建数据库和表 71

3.5.3 使用SQL语句执行查询 71

实例:英文生词本 72

3.5.4 使用sqlite3工具 76

3.5.5 使用SQLite Manager管理数据库 77

3.6 使用Core Data框架 79

3.6.1 Core Data简介 80

3.6.2 初始化Core Data项目 82

3.6.3 设计实体模型 86

3.6.4 使用Core Data实现数据的增、删、改、查 88

3.6.5 管理实体的关联关系 95

实例:图书管理系统 95

3.7 本章小结 102

第4章 多媒体应用开发 103

4.1 音频和视频的播放 104

4.1.1 使用System Sound Services播放音效 104

4.1.2 使用AVAudioPlayer播放音乐 106

4.1.3 使用MPMediaPickerController选择系统音乐 110

实例:简单音乐播放器 111

4.1.4 使用AVPlayer播放视频 114

4.2 使用AVAudioRecorder录制音频 121

4.3 拍照和录制视频 125

4.3.1 使用UIImagePickerController拍照和录制视频 125

4.3.2 使用AVFoundation拍照和录制视频 130

实例:完全自定义的相机 132

4.4 使用AVFoundation生成视频缩略图 143

4.5 本章小结 145

第5章 管理手机 146

5.1 使用iOS 9新增的Contacts管理联系人 147

5.1.1 查询联系人 151

5.1.2 删除联系人 154

5.1.3 添加联系人 155

5.1.4 修改联系人 157

5.2 使用iOS 9的ContactsUI管理联系人 163

5.2.1 使用CNContactViewController添加联系人 164

5.2.2 使用CNContactViewController显示未知联系人 165

5.2.3 使用CNContactPickerViewController选择联系人 167

5.3 使用UIApplication打电话、发短信 169

5.4 使用MFMessageComposeViewController发送短信 171

5.5 使用MFMailComposeViewController发送邮件 174

5.6 本章小结 178

第6章 加速计与陀螺仪 179

6.1 iOS支持的加速计和陀螺仪 180

6.1.1 iOS加速计和陀螺仪的理论基础 180

6.1.2 基于代码块方式获取加速度数据、陀螺仪数据、磁场数据 181

6.1.3 主动请求获取加速度数据、陀螺仪数据、磁场数据 184

实例:怪物足球 187

6.2 感知设备移动 192

实例:水平仪 195

6.3 健康相关传感器 199

6.3.1 使用CMMotionActivityManager 199

6.3.2 使用CMPedometer获取步行数据 201

6.4 使用CMAltimeter获取高度改变信息 203

6.5 iOS 9新增的CMSensorRecorder 205

6.6 本章小结 207

第7章 多线程 208

7.1 线程概述 209

7.1.1 线程和进程 209

7.1.2 多线程的优势 210

7.2 使用NSThread实现多线程 211

7.2.1 创建和启动线程 211

7.2.2 线程的状态 213

7.2.3 终止子线程 213

7.2.4 线程睡眠 215

实例:使用线程下载网络图片 215

7.2.5 改变线程优先级 217

7.3 线程同步与线程通信 218

7.3.1 线程安全问题 218

7.3.2 使用同步代码块实现同步 220

7.3.3 释放对同步监视器的锁定 223

7.3.4 同步锁(NSLock) 223

7.3.5 使用NSCondition控制线程通信 224

实例:生产者-消费者 224

7.4 使用GCD实现多线程 228

7.4.1 创建队列 229

7.4.2 异步提交任务 230

实例:使用GCD下载图片 233

7.4.3 同步提交任务 234

7.4.4 多次执行的任务 235

7.4.5 只执行一次的任务 237

7.5 后台运行 238

7.5.1 进入后台时释放内存 238

实例:疯狂飞机大战 238

7.5.2 进入后台时保存状态 245

7.5.3 请求更多的后台时间 246

7.6 使用NSOperation与NSOperationQueue 248

实现多线程 248

7.6.1 使用NSInvocationOperation和NSBlockOperation 249

实例:使用NSBlockOperation下载图片 249

7.6.2 定义NSOperation子类 251

7.7 本章小结 253

第8章 iOS网络编程 254

8.1 检测网络状态 255

8.1.1 检查网络状态 255

8.1.2 监听网络状态改变 259

8.2 使用CFNetwork实现TCP协议的通信 260

8.2.1 IP地址与端口号 260

8.2.2 TCP协议基础 261

8.2.3 使用CFSocket实现TCP服务器端 262

8.2.4 使用CFSocket实现TCP客户端 266

实例:网络聊天程序 268

8.2.5 使用CocoaAsyncSocket实现TCP客户端 271

8.3 使用NSURLSession 275

8.3.1 使用NSURLSession从网络获取数据 275

8.3.2 使用NSMutableURLRequest向服务器发送数据 280

8.4 XML解析 282

8.4.1 DOM与SAX 282

8.4.2 使用NSXMLParser解析XML文档 284

8.4.3 使用libxml2解析XML文档 289

8.4.4 使用KissXML解析XML文档 293

8.4.5 使用KissXML生成、修改XML文档 296

8.5 JSON解析 299

8.5.1 JSON的基本知识 299

8.5.2 使用NSJSONSerialization处理JSON数据 302

8.5.3 使用SBJson解析JSON数据 302

8.6 使用AFNetworking实现网络通信 307

8.6.1 提交GET请求与提交POST请求 307

实例:访问被保护资源 308

8.6.2 处理JSON或 Plist响应 312

8.6.3 处理XML响应 315

8.6.4 上传文件 317

8.7 使用ASIHTTPRequest框架实现网络编程 320

8.7.1 发送同步或异步的GET请求 321

8.7.2 使用代码块 325

8.7.3 使用NSOperationQueue管理请求 326

8.7.4 发送请求参数和文件上传 328

实例:天气预报 330

8.8 本章小结 340

第9章 使用CoreLocation定位 341

9.1 iOS的定位支持 342

9.1.1 GPS卫星定位 342

9.1.2 基站定位 343

9.1.3 WiFi定位 343

9.2 获取定位信息 343

9.2.1 iOS 9增强的后台定位 344

9.2.2 使用iOS模拟器模拟位置 349

9.2.3 监控行车速度和行车距离 349

9.3 方向监测 352

实例:指南针 353

9.4 区域监测 355

9.5 本章小结 358

第10章 使用MapKit开发地图服务 359

10.1 使用MapKit框架 360

10.1.1 使用MKMapView控件 361

10.1.2 指定地图显示中心和显示区域 362

10.1.3 在地图上使用MKMapCamera 366

10.2 根据地址定位 367

10.2.1 地址解析与反向地址解析 367

10.2.2 根据地址定位 373

10.3 在地图上添加锚点 376

10.3.1 添加简单的锚点 376

10.3.2 添加自定义锚点 380

10.4 在地图上添加覆盖层 383

10.4.1 添加几何覆盖层 384

10.4.2 添加MKTileOverlay覆盖层 386

10.5 使用MKDirections获取导航路线 389

实例:行车导航仪 389

10.6 本章小结 393

第11章 消息推送与XMPP即时通信 394

11.1 使用NSNotificationCenter通信 395

11.1.1 使用NSNotificationCenter监听系统组件的通知 396

11.1.2 使用NSNotificationCenter监听自定义通知 398

11.2 iOS本地通知 400

11.3 iOS远程推送通知 405

11.3.1 开发远程推送客户端应用 407

11.3.2 开发推送通知的服务端程序 415

11.4 基于XMPP的即时通信 422

11.4.1 XMPP简介 422

11.4.2 下载和安装ejabberd 424

11.4.3 下载和安装XMPPFramework 427

实例:即时通信App 428

11.4.4 注册登录 429

11.4.5 查询好友列表 434

11.4.6 好友上线、下线 441

11.4.7 添加、删除好友 442

11.4.8 查询聊天室列表 443

11.4.9 创建、加入聊天室 447

11.4.10 接收、发送聊天消息 449

11.5 本章小结 459

第12章 iCloud服务 460

12.1 iCloud入门 461

12.1.1 为应用开启iCloud服务 462

12.1.2 使用NSMetadataQuery查询文档 464

12.1.3 添加文档 469

12.1.4 编辑文档 472

12.1.5 删除文档 474

12.2 使用iCloud保存云端首选项 475

12.3 使用CloudKit保存数据 479

12.3.1 设计云端数据库 479

12.3.2 查询云端记录 481

实例:云端图书管理 482

12.3.3 删除云端记录 485

12.3.4 添加云端记录 486

12.3.5 修改云端记录 488

12.4 本章小结 490

第13章 HealthKit框架 491

13.1 HealthKit简介 492

13.1.1 HealthKit常识 492

13.1.2 HealthKit的基础API 493

13.1.3 HealthKit的数据简介 494

13.2 读取特征数据 494

13.2.1 请求获取授权 495

13.2.2 读取特征数据 499

13.2.3 查询样本数据 503

13.2.4 添加样本数据 509

13.3 操作锻炼数据 510

13.3.1 查询锻炼数据 511

13.3.2 添加锻炼数据 515

13.4 本章小结 523

第14章 疯狂软件商城App 524

14.1 系统功能简介和架构设计 525

14.1.1 系统功能简介 525

14.1.2 系统架构设计 525

14.2 发送请求的工具类 526

14.3 应用界面设计 528

14.4 显示热卖商品 531

14.4.1 热卖商品的服务器端接口 532

14.4.2 加载显示热卖商品 532

14.5 显示商品详情 540

14.5.1 显示商品 540

14.5.2 加入购物车 544

14.6 处理订单 547

14.6.1 处理购物车 547

14.6.2 确认订单 553

14.6.3 微信支付 558

14.7 分类浏览 570

14.7.1 商品类别的服务器端接口 570

14.7.2 加载、显示商品分类 570

14.7.3 加载、显示指定分类的商品 573

14.8 商家介绍 576

14.9 本章小结 578