新書推薦:
《
汉匈战争全史
》
售價:HK$
102.4
《
恶的哲学研究(社会思想丛书)
》
售價:HK$
109.8
《
不止江湖
》
售價:HK$
101.2
《
天才留步!——从文艺复兴到新艺术运动(一本关于艺术天才的鲜活故事集,聚焦艺术史的高光时刻!)
》
售價:HK$
158.7
《
双城史
》
售價:HK$
110.9
《
冯友兰和青年谈心系列:不是问题的问题(哲学大师冯友兰和年轻人谈心,命运解读)
》
售價:HK$
57.3
《
月与蟹(青鲤文库)荣获第144届直木奖,天才推理作家经典作品全新译本。一部青春狂想曲,带你登上心理悬疑之巅。
》
售價:HK$
51.8
《
索恩丛书·盛清统治下的太监与皇帝
》
售價:HK$
88.5
|
編輯推薦: |
基于iOS全新平台,全部案例均通过iPhone 5s真机测试。
商业级APP代码无保留全盘呈现。
行业大奖得主、电子工业出版社优秀作者、IT名家李刚老师出品,一如既往的质量保障。
|
內容簡介: |
书基于《疯狂iOS讲义(下)》升级而来,已真正升级成Swift、Objective-C双语讲解。本书所有案例全部提供Swift、Objective-C两个语言的版本。本书基于最新的iOS 9.3、Xcode 7.3平台,全面介绍iOS应用开发的高级知识。本书包含多点触摸与手势处理、应用国际化、数据存储、SQLite数据库与Core Data、iOS多媒体开发、加速计和陀螺仪、多线程、网络编程、XMPP即时通信、定位、地图、推送机制、iCloud服务、HealthKit框架等内容,本书最后还通过疯狂软件商城App整合介绍了iOS App的界面开发、自定义UI控件、手势处理、网络通信、本地数据存储、在线支付等功能的用法。读者在阅读本书之前,建议先掌握《疯狂iOS讲义(基础篇)》中的知识。本书并不局限于介绍iOS编程的各种理论知识,而是从“项目驱动”的角度来讲授理论,全书一共包括近百个实例,这些示范性的实例既可帮助读者更好地理解各知识点在实际开发中的应用,也可供读者在实际开发时作为参考、拿来就用。如果读者在阅读本书时遇到技术问题,可以登录疯狂Java联盟(http:www.crazyit.org)发帖,笔者将会及时予以解答。本书为所有打算深入掌握iOS编程的读者而编写,适合各种层次的iOS学习者和开发者阅读,也适合作为大学教育、培训机构的iOS教材。
|
關於作者: |
十余年软件开发从业经验,疯狂软件教育中心教学总监。疯狂Java实训营创始人,疯狂Java体系原创图书作者。广东技术师范学院计算机科学系兼职副教授,51CTO专家门诊特邀嘉宾。
|
目錄:
|
第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 Bundle48
3.2.2 使用NSUserDefaults读取、保
存应用程序参数57
3.3 属性列表62
实例:备忘录62
3.4 对象归档和原生IO API66
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 使用CMMotionActivityManager199
6.3.2 使用CMPedometer获取步行数据201
6.4 使用CMAltimeter获取高度改变信息203
6.5 iOS 9新增的CMSensorRecorder205
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
7.6.1 使用NSInvocationOperation和
NSBlockOperation249
实例:使用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 使用NSURLSession275
8.3.1 使用NSURLSession从网络获
取数据275
8.3.2 使用NSMutableURLRequest向服
务器发送数据280
8.4 XML解析282
8.4.1 DOM与SAX282
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 在地图上使用MKMapCamera366
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 下载和安装ejabberd424
11.4.3 下载和安装XMPPFramework427
实例:即时通信App428
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的基础API493
13.1.3 HealthKit的数据简介494
13.2 读取特征1
|
|