新書推薦:
《
第二人生:找到重新定义人生的智慧
》
售價:NT$
440.0
《
唐朝三百年
》
售價:NT$
490.0
《
反操纵心理学:夺回人生主导权 拒绝被操纵
》
售價:NT$
249.0
《
同工异曲:跨文化阅读的启示(修订版)(师承钱锺书先生,比较文学入门,体量小但内容丰,案例文笔皆精彩)
》
售價:NT$
199.0
《
牛津立法研究手册
》
售價:NT$
1630.0
《
制度为什么重要:政治科学中的新制度主义(人文社科悦读坊)
》
售價:NT$
290.0
《
梦醒子:一位华北乡居者的人生(1857—1942))(第2版)
》
售價:NT$
340.0
《
啊哈!原来如此(中译本修订版)
》
售價:NT$
290.0
編輯推薦:
CSDN排名141博主力作!点击近200万次博客集成之作!
Swift和iOS 8“合二为一”——实战性强,拒绝泛泛,直逼症结,真正的经验之作!
本书创新性地将语言和框架结合起来介绍。
本书主要内容包括:Swift语言的基本特性,iOS 8对UI方面的改善,App扩展,包括今日、分享、动作、照片编辑、文档提供者、键盘,增强框架,包括CloudKit、Photos、HandOff和WebKit,以及Live Rendering和Visual Effects等。
內容簡介:
本书创新性地将语言和框架结合起来介绍。全书分为两部分:第一部分是 Swift 语言介绍,共4章;第二部分则是iOS 8特性的介绍,从App开发者的角度阐述Swift语言在新SDK上的实际应用。本书在介绍iOS 8每个特性的过程中,配以丰富的Swift代码案例,以此让读者在学习iOS 8的同时,积累大量的 Swift 编码经验。
目錄 :
第一部分 Swift语言编程指南
第1章 Swift初见2
1.1 什么是Swift2
1.2 为什么要学习Swift3
1.3 Objective-C程序员学习Swift需要特别关注的地方3
1.3.1 类型推断与类型安全4
1.3.2 泛型5
1.3.3 数组和字典6
1.3.4 字符串7
1.3.5 switch语句8
1.4 关于Swift初学者的一些问题9
1.4.1 从哪里获得Swift9
1.4.2 是否需要先学Objective-C,再学Swift9
1.4.3 “老鸟”们学习Swift是否会更轻松10
1.4.4 开发iOS 8和OS X Yosemite程序只能用Swift吗10
1.4.5 Swift是否能在当前的iOS和OS X版本上工作10
1.4.6 什么是Playground11
1.4.7 关于NDA11
1.4.8 有Swift能做到而Objective-C无法做到的吗?反过来说呢11
1.4.9 某些API是否无法被Swift调用11
1.4.10 在Playground中,如何以图表方式查看变量值12
1.4.11 如何打开REPL13
1.4.12 Swift如何调用Objective-C代码或第三方库14
1.4.13 Swift数组只能存储同一种类型的数据吗15
1.4.14 字典是否也和数组一样是强类型的15
1.4.15 Swift中有类似于Objective-C中的id吗15
1.4.16 在 Swift中,如何自省15
1.4.17 在Swift中如何使用GCD16
1.4.18 Objective-C中提供的Internationalization宏是否仍然可用16
1.4.19 仍然需要注意持有循环吗17
1.4.20 何时使用strong、weak以及unowned17
第2章 Swift语法基础18
2.1 Playground18
2.2 常量、变量、字符串21
2.2.1 常量21
2.2.2 变量21
2.2.3 分号22
2.2.4 字符串22
2.2.5 字符串插值和运算23
2.3 简单类型和类型推断23
2.3.1 数值类型23
2.3.2 类型转换25
2.3.3 布尔类型26
2.3.4 区间26
2.3.5 元组27
2.4 流程控制28
2.4.1 for循环28
2.4.2 while语句31
2.4.3 if语句31
2.4.4 switch语句33
第3章 结构和类38
3.1 可空类型38
3.1.1 认识可空38
3.1.2 声明可空40
3.1.3 可空类型与非可空类型的转换42
3.2 集合44
3.2.1 数组45
3.2.2 字典47
3.3 枚举50
3.3.1 定义枚举时填充原始值50
3.3.2 使用其他类型51
3.3.3 不填充原始值52
3.3.4 联合53
3.4 结构和类综述54
3.4.1 属性54
3.4.2 构造器55
3.4.3 实例方法56
3.4.4 类方法56
3.4.5 下标方法57
3.4.6 继承59
第4章 Swift函数式编程61
4.1 函数61
4.1.1 函数的定义61
4.1.2 外部参数名62
4.1.3 简化外部参数名62
4.1.4 默认值63
4.1.5 可变参数64
4.1.6 变量参数和输出参数64
4.1.7 用函数作为参数65
4.1.8 函数作为返回值66
4.1.9 嵌套函数67
4.2 闭包68
4.2.1 声明闭包69
4.2.2 匿名闭包69
4.2.3 尾末闭包70
4.2.4 值捕获70
4.3 协议71
4.3.1 协议的声明71
4.3.2 实现协议72
4.3.3 协议是一种类型72
4.3.4 组合协议73
4.4 扩展74
4.4.1 声明扩展74
4.4.2 扩展和协议75
4.5 泛型75
4.5.1 泛型函数76
4.5.2 泛型和协议76
4.5.3 泛型约束77
4.5.4 泛型类型78
4.6 可空链79
4.6.1 ?操作符79
4.6.2 ??操作符82
第二部分 iOS 8 SDK
第5章 故事板与自适应布局86
5.1 自适应布局入门86
5.1.1 自适应布局的4个概念87
5.1.2 Universal故事板87
5.1.3 Size类96
5.1.4 自适应字体100
5.1.5 设备相关图片101
5.2 自适应布局进阶102
5.2.1 自适应单元格102
5.2.2 自动安装视图108
5.2.3 UITraitCollection类119
5.2.4 覆盖Size类121
5.2.5 Size相关图片125
5.2.6 显示隐藏导航栏127
5.2.7 UIAppearance和Size类128
第6章 UISplitViewController及旋屏130
6.1 创建UISplitViewController应用131
6.2 在iPhone App中使用UISplitViewController140
6.2.1 创建Detail默认视图140
6.2.2 在iPhone中展开UISplitViewController143
6.2.3 记住用户选择151
6.2.4 单元格指示器154
6.2.5 对iPad进行适应159
6.3 旋屏162
6.3.1 旧的旋屏方法被废弃162
6.3.2 自定义旋屏效果165
6.3.3 单元格自适应大小167
6.3.4 iPad旋屏169
6.3.5 自适应的UILabel176
第7章 视图控制器的呈现180
7.1 初始项目181
7.2 内置的Presentation Controller182
7.2.1 UIAlertController183
7.2.2 UIPopoverPresentationController186
7.2.3 UISearchController191
7.3 自定义UIPresentationController196
7.3.1 Presented控制器和Presenting控制器196
7.3.2 创建基本的PresentationController197
7.3.3 自定义转换动画200
7.3.4 高级定制206
第8章 今日扩展215
8.1 App扩展介绍215
8.1.1 App扩展的类型216
8.1.2 理解App扩展219
8.2 今日扩展综述223
8.2.1 介绍今日扩展223
8.2.2 WeatherWidget示例223
8.2.3 讨论240
第9章 分享扩展242
9.1 案例项目:SinaWeiboShare242
9.1.1 实现容器App243
9.1.2 创建分享扩展257
9.2 讨论267
9.2.1 配置SLComposeSheetConfigurationItem268
9.2.2 分享其他文件268
第10章 动作扩展269
10.1 案例项目:SearchInICIBA269
10.1.1 实现容器App270
10.1.2 创建动作扩展272
10.2 讨论280
第11章 照片编辑扩展281
11.1 案例项目:PhotoVintage281
11.1.1 实现容器App282
11.1.2 实现照片编辑扩展282
11.2 讨论292
第12章 文档提供者扩展294
12.1 准备295
12.1.1 工作机制295
12.1.2 文档提供者扩展支持的4种操作296
12.2 Bmob云服务297
12.2.1 注册Bmob297
12.2.2 创建应用297
12.2.3 获取App Key298
12.2.4 Bmob SDK299
12.3 开始299
12.3.1 添加扩展App299
12.3.2 配置Info.plist和entitlements300
12.4 加入Bmob SDK框架301
12.4.1 添加CocoaPods框架301
12.4.2 桥接头文件304
12.4.3 上传图片到Bmob305
12.4.4 实现Document Picker308
12.4.5 实现宿主App314
12.4.6 实现File Provider319
12.5 讨论322
第13章 键盘扩展323
13.1 准备323
13.2 键盘扩展的限制323
13.3 值得信任324
13.4 网络访问325
13.5 开始326
13.5.1 创建键盘扩展326
13.5.2 显示键盘327
13.5.3 设计按钮及布局329
13.6 实现KeyboardViewController331
13.6.1 创建连接331
13.6.2 实现按键处理332
13.6.3 大小写转换334
13.6.4 切换符号集335
13.6.5 按键动画336
13.6.6 键盘最终运行效果336
13.7 讨论337
第14章 CloudKit338
14.1 准备339