过阅读本书,你将能够:
了解OS X和iOS应用的生命周期
使用故事板设计自适应界面
探索图形系统,包括内置的2D和3D游戏框架
用AVFoundation显示视频和音频
用文件系统在本地存储数据,或者用iCloud在网络上存储数据
用表格视图和集合视图显示数据列表或数据集合
开发可供用户创建、编辑和处理文档的应用
使用MapKit、Core Location和Core Motion与现实世界交互
前言XIII
第1章 Cocoa开发工具1
1.1 Mac和iOS开发者计划1
1.1.1 注册开发者计划2
1.1.2 下载Xcode3
1.2 用Xcode创建自己的第一个项目4
1.3 开发一个简单的Swift应用程序11
1.3.1 设计界面11
1.3.2 连接代码13
1.4 使用iOS模拟器14
1.5 用TestFlight测试iOS App16
第2章 用Swift设计程序17
2.1 Swift程序设计语言17
2.2 playground19
2.3 变量和常量20
2.4 类型21
2.4.1 元组23
2.4.2 数组23
2.4.3 字典25
2.5 控制流25
2.6 函数与闭包29
2.6.1 将函数用作变量32
2.6.2 闭包34
2.7 对象35
2.7.1 继承36
2.7.2 初始化与反初始化37
2.7.3 属性38
2.7.4 协议40
2.7.5 扩展41
2.7.6 访问控制43
2.7.7 运算符44
2.7.8 泛型45
2.8 与Objective-C的互操作46
2.9 在同一项目中使用Objective-C和Swift46
2.9.1 在Objective-C中使用Swift对象46
2.9.2 在Swift中使用Objective-C47
2.10 模块48
2.11 内存管理48
2.12 字符串49
2.12.1 比较字符串50
2.12.2 查找字符串50
2.13 数据50
2.13.1 从文件和URL加载数据51
2.13.2 序列化与反序列化51
2.14 Cocoa中的设计模式52
2.14.1 模型- 视图- 控制器52
2.14.2 委托53
第3章 OS X和iOS上的应用程序56
3.1 什么是应用程序56
3.1.1 应用程序、框架、实用工具及其他57
3.1.2 App的构成58
3.1.3 用NSBundle在应用程序中查找资源60
3.2 应用程序生命周期61
3.2.1 OS X应用程序61
3.2.2 iOS应用程序62
3.3 应用程序沙盒67
3.4 用NSNotification发送通知70
第4章 图形用户界面72
4.1 OS X和iOS中的界面72
4.2 MVC和应用程序设计73
4.3 nib文件和故事板73
4.3.1 nib文件的结构74
4.3.2 故事板77
4.3.3 输出口和操作77
4.3.4 如何加载nib文件和故事板78
4.4 构建界面79
4.5 构建具有nib和约束的App81
4.6 iOS上的界面84
4.7 UI Dynamics87
4.7.1 UI和重力87
4.7.2 吸附UI88
4.8 Core Animation89
4.8.1 层90
4.8.2 动画91
第5章 闭包和操作队列94
5.1 Cocoa中的闭包95
5.2 操作队列中的并发96
5.3 操作队列和NSOperation96
5.4 在操作队列中执行工作97
5.5 融会贯通98
第6章 在视图上绘制图形103
6.1 如何绘制103
6.2 像素网格105
6.2.1 Retina显示屏106
6.2.2 像素与屏幕点107
6.3 在视图中绘制107
6.3.1 框架矩形107
6.3.2 边界矩形108
6.4 创建自定义视图109
6.4.1 用纯色填充110
6.4.2 处理路径111
6.4.3 创建自定义路径112
6.4.4 多条子路径114
6.4.5 阴影115
6.4.6 渐变119
6.4.7 变换121
第7章 SpriteKit123
7.1 SpriteKit的体系结构123
7.2 制作使用SpriteKit的App124
7.3 使用SpriteKit场景125
7.4 SpriteKit节点127
7.5 将精灵放在场景中128
7.6 对触碰作出响应129
7.7 使用纹理130
7.8 纹理贴图集131
7.9 使用文本131
7.10 用操作实现内容的动画133
7.11 使用形状节点134
7.12 使用图像特效节点135
7.13 向SpirteKit对象增加物理属性137
7.14 向SpriteKit对象添加接合138
7.15 SpriteKit场景照明138
7.16 约束139
7.17 在SpriteKit中使用阴影140
7.18 使用SpriteKit编辑器142
第8章 SceneKit143
8.1 SceneKit结构144
8.2 使用SceneKit144
8.3 添加SceneKit视图145
8.4 添加场景146
8.5 添加照相机146
8.6 添加3D对象147
8.7 添加光源149
8.8 为场景中的内容实现动画150
8.9 创建文本几何体151
8.10 使用材料153
8.11 命中检测157
8.12 约束158
8.13 从COLLADA文件中加载数据160
8.14 向场景中添加物理仿真162
第9章 音频与视频165
9.1 AV Foundation165
9.2 用AVPlayer播放视频166
9.2.1 AVPlayerLayer167
9.2.2 融会贯通167
9.2.3 AVKit170
9.2.4 iOS上的AVKit172
9.2.5 用AVAudioPlayer播放声音174
9.3 语音合成175
9.4 使用照片库176
9.4.1 从相机采集照片和视频176
9.4.2 开发照片应用程序178
9.4.3 照片库181
第10章 iCloud和数据存储182
10.1 偏好设置182
10.1.1 注册默认偏好设置183
10.1.2 访问偏好设置184
10.1.3 设定偏好设置184
10.2 使用文件系统184
10.2.1 使用NSFileManager186
10.2.2 文件存储位置189
10.3 使用沙盒189
10.3.1 启用沙盒190
10.3.2 打开和保存面板190
10.3.3 安全范围内的书签191
10.4 iCould192
10.5 iCloud存储什么193
10.6 为iCloud进行设置194
10.7 测试iCloud是否正常工作194
10.8 存储设置195
10.8.1 处理外部修改196
10.8.2 iOS上的相应内容197
10.9 iCloud存储199
10.9.1 OS X上的iCloud存储200
10.9.2 iOS上的iCloud存储204
10.10 文档选取器206
10.11 iCloud的最佳使用210
第11章 Cocoa绑定211
11.1 将视图绑定到模型211
11.2 一个简单的绑定App212
11.3 绑定到控制器214
11.4 数组和对象控制器216
11.5 一个更复杂的绑定App216
第12章 表格视图和集合视图223
12.1 数据源和委托223
12.2 表格视图224
12.2.1 iOS上的UITableView224
12.2.2 OS X上的NSTableView231
12.3 集合视图236
第13章 基于文档的应用程序240
13.1 NSDocument和UIDocument类241
13.2 MVC 中的文档对象241
13.2.1 文档的类型241
13.2.2 文档的角色242
13.3 OS X上基于文档的应用程序243
13.3.1 自动保存与版本243
13.3.2 用NSDocument表示文档243
13.3.3 保存简单数据244
13.3.4 保存更复杂的数据246
13.4 iOS上基于文档的应用程序250
第14章 联网257
14.1 连接257
14.1.1 NSURL258
14.1.2 NSURLRequest259
14.1.3 NSURLSession259
14.1.4 NSURLResponse和NSHTTPURLResponse260
14.2 开发联网应用程序261
14.3 Bonjour服务的发现262
14.4 Multipeer Connectivity264
第15章 与现实世界互动269
15.1 使用位置269
15.1.1 位置硬件270
15.1.2 Core Location框架271
15.1.3 使用Core Location272
15.2 地理编码275
15.3 区域监测和iBeacon278
15.4 位置与隐私281
15.5 地图281
15.5.1 使用地图281
15.5.2 标记地图282
15.5.3 地图与覆盖物282
15.6 设备运动284
15.6.1 使用Core Motion285
15.6.2 使用内置高度计288
15.6.3 使用计步器289
15.7 打印文档290
15.7.1 在OS X 上打印291
15.7.2 在iOS 上打印291
15.8 Game Controller293
15.9 App Nap295
15.10 用Touch ID验证296
15.11 Handoff300
第16章 EventKit305
16.1 理解事件305
16.2 访问事件存储库306
16.3 访问日历307
16.4 访问事件307
16.5 处理事件308
16.6 开发一个事件应用程序310
16.7 用户隐私314
第17章 Instruments和调试器315
17.1 开始使用Instruments316
17.1.1 Instruments 界面318
17.1.2 观察数据318
17.1.3 从Library中添加Instruments319
17.2 用Instruments解决问题320
17.3 循环保留和漏洞324
17.4 使用调试器326
17.4.1 设置断点326
17.4.2 查看内存内容328
17.4.3 使用调试器控制台329
17.5 视图调试329
17.6 测试框架331
17.6.1 编写测试332
17.6.2 编写异步测试333
17.6.3 性能测试块334
17.7 调试仪表334
17.8 性能优化334
第18章 共享与通知336
18.1 共享336
18.2 在iOS上共享339
18.3 在OS X上共享341
18.4 通知342
18.4.1 注册通知设置342
18.4.2 推送通知347
18.4.3 通知到达时会发生什么347
18.5 发送推送通知348
18.6 设置接收推送通知349
18.7 接收推送通知350
18.8 本地通知352
第19章 非标准App354
19.1 命令行工具354
19.2 偏好设置窗格355
19.2.1 偏好设置窗格如何工作356
19.2.2 偏好设置域356
19.2.3 生成示例偏好设置窗格357
19.3 状态栏项目359
19.4 多窗口iOS App361
第20章 处理文本364
20.1 国际化与本地化364
20.1.1 字符串文件364
20.1.2 创建一个示例本地化应用程序365
20.2 用NSFormatter设定数据格式372
20.3 设定数字、长度、质量、能量和数据的格式374
20.3.1 NSNumberFormatter374
20.3.2 NSEnergyFormatter、NSMassFormatter 和NSLengthFormatter375
20.3.3 NSByteCountFormatter376
20.4 用NSDataDetector检测数据377
20.5 TextKit379
作者介绍382
封面介绍382
《华为增量绩效法》内容简介:增量绩效法是华为“打胜仗”思想的演绎和延伸,是被华为实践证明的管理利器,也是被众多中小企业验证
《室内分布系统规划与设计:GSM/TD-SCDMA/TD-LTE/WLAN》介绍了GSM/TD—SCDMA/WLAN/TD—LTE四网融合室内分布系统的基本原理...
《PHP安全之道》内容简介:本书主要面向PHP研发人员,详细讲解PHP项目漏洞的产生原理及防范措施,帮助研发人员在项目研发过程中规避
《当代中国农村》内容简介:全面展示中国农村发展成就中国农业现代化建设;创新农业经营体制,转变农业发展方式农业供给侧结构性改
《中国古代小说中的“史传”传统及其历史变迁》内容简介:本书以“辨章学术,考镜源流”为进路,旨在研究中国古代小说的“史传”传
《日志管理与分析(第2版)》内容简介:本书基于主流日志管理与分析系统的设计理念,完善、透彻地对日志分析各流程模块的原理与实现
★本书荣获LinuxWorldLinuxJournal2006年EditorsChoiceawards。★绝好的一本ajax高级读物,建议每个web程序员都需要...
DonBox是微软公司的架构师,主要研究方向为下一代Web服务协议和程序设计模型。Don是软件集成技术方面的权威。在上世纪90年代,他
Thoroughlyrevised,thisthirdeditionfocusesonmoderntechniquesusedtogeneratesynthet...
“观念”是一切行动的开始,《100个改变平面设计的伟大观念》是由当今最顶尖的艺术指导之一、平面设计畅销书作家撰写,让我们轻松
《孩子们的小提琴练习曲3(缩编版)》内容简介:本书包括了沃尔法特、开塞、马扎斯、顿特、克莱采尔的练习曲,这些练习曲接近按照技
《与共和国共成长:中国人民大学校友口述史(第二辑)》内容简介:2019年,我们将迎来中华人民共和国70周年华诞。自1937年成立以来
《倾听生命的低语》内容简介:本书是散文作家鲁先圣积数年之力完成的一部随笔断章作品集,全书语句凝练,思想深邃,情感真挚,禅意
冀云编著的《C++黑客编程揭秘与防范》旨在通过简单的语法知识及常用的系统函数编程,完成一些有特定功能的安全工具,让读者对系统
Therelationshipbetweenthebodyandelectronictechnology,extensivelytheorizedthrough...
《Linux虚拟化数据中心实战》内容简介:本书共8章,采用循序渐进的方式,帮助读者掌握Linux虚拟化架构的部署和使用,包括开源虚拟化
Ourcitiesare"smart"andgettingsmarterasinformationprocessingcapabilityisembeddedt...
在过去单核CPU时代,单任务在一个时间点只能执行单一程序,随着多核CPU的发展,并行程序开发就显得尤为重要。《实战Java高并发程
《天津滨海新区史话》内容简介:天津滨海新区地处海河下游、渤海湾西岸,河海相依,临海近都,区位优越。这里曾是中国人民抗击外侮
《Excel数据分析与可视化》内容简介:本书以项目为导向,由浅入深地介绍Excel在数据分析与可视化方面的应用。全书以“自动售货机”