{{ buttonTypePin == 3 ? __("Scan to view more PinGo") : __("Scan to start") }}
港澳台地道味 · 食出新意思
餅乾 糕點 甜點
鳳梨酥 麻薯 沙琪瑪
蛋糕 麵包 派 銅鑼燒
餅乾 脆棒 烤饃片 酥餅
休閒 膨化 洋芋片
膨化 薯片 蝦條 點心 米果
威化 蛋捲 麻花 鍋巴
網紅零食
童年同款辣條 日韩便利店必買 茶顏悅色·超全到貨 機場限定伴手禮 春季多巴胺 抹茶限定
方便速食 泡麵 自熱火鍋
泡麵 拉麵 杯麵 即食年糕
自熱火鍋 冒菜 麻辣燙 烤冷麵
螺螄粉 方便粉絲 酸辣粉 涼皮
即食飯 八寶粥 滷蛋 代餐
八寶粥 代餐 米稀 即食甜點
拌飯 即食飯 即食粥 即食湯
醬菜 鹹菜 拌飯醬 老乾媽
開袋即食 滷蛋 罐頭
火鍋底料 廚房調味
火鍋底料
沾醬 花生醬 麻醬
乾鍋料 水煮魚 料包
湯料 鹵料包
醬油 醬汁 蠔油
白醋陳醋
辣椒醬/粉 豆瓣醬
料酒 香油 香辛大料
鹽/糖 冰糖 紅糖
調味醬 調味料 燒烤醬
沙拉醬 番茄醬 咖哩
糧油米麵 副食乾貨
米粉/線 麵條 粉絲
米 糯米 糙米
五穀雜糧 豆子
麵粉 麵點 預拌粉
食用油 橄欖油
豆皮 紫菜 海帶結 乾菜
莧皮 鴨血 豆腐 火鍋涮菜
大棗 銀耳 蓮子 枸杞
木耳 菌菇
海產 臘肉 醃味
歷史瀏覽
京東圖書
iOS 8 Swift编程指南
{{ itemCurrency }}{{ item.valid_price }}
{{ itemCurrency }}{{ priceFormat(item.valid_price / item.bundle_specification) }}/{{ item.unit }}
{{ itemDiscount }}
{{ itemCurrency }}{{ item.valid_price }}
{{ itemCurrency }}{{ item.valid_price }}
商品描述
展開全部描述
Editer Recommend
CSDN排名141博主力作!点击近200万次博客集成之作!
Swift和iOS 8“合二为一”——实战性强,拒绝泛泛,直逼症结,真正的经验之作!
本书创新性地将语言和框架结合起来介绍。
本书主要内容包括:Swift语言的基本特性,iOS 8对UI方面的改善,App扩展,包括今日、分享、动作、照片编辑、文档提供者、键盘,增强框架,包括CloudKit、Photos、HandOff和WebKit,以及Live Rendering和Visual Effects等。
海报:
Content Description
《iOS 8 Swift编程指南》创新性地将语言和框架结合起来介绍。全书分为两部分:一部分是 Swift 语言介绍,共4章;第二部分则是iOS 8特性的介绍,从App开发者的角度阐述Swift语言在新SDK上的实际应用。本书在介绍iOS 8每个特性的过程中,配以丰富的Swift代码案例,以此让读者在学习iOS 8的同时,积累大量的 Swift 编码经验。
《iOS 8 Swift编程指南》适合所有层次的iOS开发者阅读、参考,无论你是否具有Objective-C编程经验。
《iOS 8 Swift编程指南》适合所有层次的iOS开发者阅读、参考,无论你是否具有Objective-C编程经验。
Author Description
杨宏焱,男,曾任某大型国企高级软件工程师、移动开发领域知名专家。有多年 j2ee 编程经验,熟悉 SqlServer、Oracle 数据库及 T-SQL、PL/SQL 编程。2009年开始专注于 iOS 开发,精通Objective C 和 Swift 本地App开发,活跃于CSDN、CocoaChina等多个开发者社区,CSDN移动开发博客专家(博客地址:https://blog.csdn.net/kmyhy)、CSDN学院讲师。
Catalogue
第一部分Swift语言编程指南
第1章Swift初见
1.1什么是Swift
1.2 为什么要学习Swift
1.3Objective-C程序员学习Swift需要特别关注的地方
1.3.1类型推断与类型安全
1.3.2泛型
1.3.3数组和字典
1.3.4字符串
1.3.5switch语句
1.4 关于Swift初学者的一些问题
1.4.1从哪里获得Swift
1.4.2是否需要先学Objective-C,再学Swift
1.4.3"老鸟"们学习Swift是否会更轻松
1.4.4开发iOS 8和OS X Yosemite程序只能用Swift吗
1.4.5Swift是否能在当前的iOS和OS X版本上工作
1.4.6什么是Playground
1.4.7关于NDA
1.4.8有Swift能做到而Objective-C法做到的吗?反过来说呢
1.4.9某些API是否法被Swift调用
1.4.10在Playground中,如何以图表方式查看变量值
1.4.11如何打开REPL
1.4.12Swift如何调用Objective-C代码或第三方库
1.4.13Swift数组只能存储同一种类型的数据吗
1.4.14字典是否也和数组一样是强类型的
1.4.15Swift中有类似于Objective-C中的id吗
1.4.16在 Swift中,如何自省
1.4.17在Swift中如何使用GCD
1.4.18Objective-C中提供的Internationalization宏是否仍然可用
1.4.19仍然需要注意持有循环吗
1.4.20何时使用strong、weak以及unowned
第2章Swift语法基础
2.1Playground
2.2常量、变量、字符串
2.2.1常量
2.2.2变量
2.2.3 分号
2.2.4字符串
2.2.5字符串插值和运算
2.3简单类型和类型推断
2.3.1数值类型
2.3.2类型转换
2.3.3布尔类型
2.3.4区间
2.3.5元组
2.4流程控制
2.4.1for循环
2.4.2while语句
2.4.3if语句
2.4.4switch语句
第3章结构和类
3.1 可空类型
3.1.1 认识可空
3.1.2 声明可空
3.1.3 可空类型与非可空类型的转换
3.2 集合
3.2.1 数组
3.2.2 字典
3.3 枚举
3.3.1 定义枚举时填充原始值
3.3.2 使用其他类型
3.3.3 不填充原始值
3.3.4 联合
3.4 结构和类综述
3.4.1 属性
3.4.2 构造器
3.4.3 实例方法
3.4.4 类方法
3.4.5 下标方法
3.4.6 继承
第4章Swift函数式编程
4.1 函数
4.1.1 函数的定义
4.1.2 外部参数名
4.1.3 简化外部参数名
4.1.4 默认值
4.1.5 可变参数
4.1.6 变量参数和输出参数
4.1.7 用函数作为参数
4.1.8 函数作为返回值
4.1.9 嵌套函数
4.2 闭包
4.2.1 声明闭包
4.2.2 匿名闭包
4.2.3 尾末闭包
4.2.4 值捕获
4.3 协议
4.3.1 协议的声明
4.3.2 实现协议
4.3.3 协议是一种类型
4.3.4 组合协议
4.4 扩展
4.4.1 声明扩展
4.4.2 扩展和协议
4.5 泛型
4.5.1 泛型函数
4.5.2 泛型和协议
4.5.3 泛型约束
4.5.4 泛型类型
4.6 可空链
4.6.1 ?操作符
4.6.2 ??操作符
第二部分iOS 8 SDK
第5章故事板与自适应布局
5.1 自适应布局入门
5.1.1 自适应布局的4个概念
5.1.2 Universal故事板
5.1.3 Size类
5.1.4 自适应字体
5.1.5 设备相关图片
5.2 自适应布局进阶
5.2.1 自适应单元格
5.2.2 自动安装视图
5.2.3 UITraitCollection类
5.2.4 覆盖Size类
5.2.5 Size相关图片
5.2.6 显示/隐藏导航栏
5.2.7 UIAppearance和Size类
第6章UISplitViewController及旋屏
6.1 创建UISplitViewController应用
6.2 在iPhone App中使用UISplitViewController
6.2.1 创建Detail默认视图
6.2.2 在iPhone中展开UISplitViewController
6.2.3 记住用户选择
6.2.4 单元格指示器
6.2.5 对iPad进行适应
6.3 旋屏
6.3.1 旧的旋屏方法被废弃
6.3.2 自定义旋屏效果
6.3.3 单元格自适应大小
6.3.4 iPad旋屏
6.3.5 自适应的UILabel
第7章视图控制器的呈现
7.1 初始项目
7.2 内置的Presentation Controller
7.2.1 UIAlertController
7.2.2 UIPopoverPresentationController
7.2.3 UISearchController
7.3 自定义UIPresentationController
7.3.1 Presented控制器和Presenting控制器
7.3.2 创建基本的PresentationController
7.3.3 自定义转换动画
7.3.4 高级定制
第8章今日扩展
8.1 App扩展介绍
8.1.1 App扩展的类型
8.1.2 理解App扩展
8.2 今日扩展综述
8.2.1 介绍今日扩展
8.2.2 WeatherWidget示例
8.2.3 讨论
第9章分享扩展
9.1 案例项目:SinaWeiboShare
9.1.1 实现容器App
9.1.2 创建分享扩展
9.2 讨论
9.2.1 配置SLComposeSheetConfigurationItem
9.2.2 分享其他文件
第10章动作扩展
10.1 案例项目:SearchInICIBA
10.1.1 实现容器App
10.1.2 创建动作扩展
10.2 讨论
第11章照片编辑扩展
11.1 案例项目:PhotoVintage
11.1.1 实现容器App
11.1.2 实现照片编辑扩展
11.2 讨论
第12章文档提供者扩展
12.1 准备
12.1.1 工作机制
12.1.2 文档提供者扩展支持的4种操作
12.2 Bmob云服务
12.2.1 注册Bmob
12.2.2 创建应用
12.2.3 获取App Key
12.2.4 Bmob SDK
12.3 开始
12.3.1 添加扩展App
12.3.2 配置Info.plist和entitlements
12.4 加入Bmob SDK框架
12.4.1 添加CocoaPods框架
12.4.2 桥接头文件
12.4.3 上传图片到Bmob
12.4.4 实现Document Picker
12.4.5 实现宿主App
12.4.6 实现File Provider
12.5 讨论
第13章键盘扩展
13.1 准备
13.2 键盘扩展的限制
13.3 值得信任
13.4 网络访问
13.5 开始
13.5.1 创建键盘扩展
13.5.2 显示键盘
13.5.3 设计按钮及布局
13.6 实现KeyboardViewController
13.6.1 创建连接
13.6.2 实现按键处理
13.6.3 大小写转换
13.6.4 切换符号集
13.6.5 按键动画
13.6.6 键盘最终运行效果
13.7 讨论
第14章CloudKit
14.1 准备
14.1.1 用户授权
14.1.2 iCloud容器
14.1.3 数据库
14.1.4 Zone
14.1.5 记录
14.1.6 订阅
14.2 开始
14.2.1 打开iCloud
14.2.2 程序主界面
14.2.3 全局对象
14.2.4 获取用户ID及姓名
14.2.5 将数据封装为CKRecord
14.2.6 上传照片
14.2.7 查看已经上传的图片
14.3 高级API
14.3.1 不完全抓取
14.3.2 分页抓取
14.3.3 抓取并缓存图片
14.3.4 错误处理及网络重试
14.3.5 CloudKit Dashboard
14.4 讨论
第15章Photos框架
15.1 Photos初步
15.1.1 模型对象
15.1.2 抓取概述
15.1.3 检索内容
15.1.4 初始项目
15.1.5 获取用户授权
15.1.6 抓取
15.1.7 显示图片
15.1.8 缓存
15.1.9 标记用户选择
15.2 Photos进阶
15.2.1 API介绍
15.2.2 初始项目
15.2.3 创建新的拼接图
15.2.4 显示拼接图
15.2.5 收藏和删除
15.2.6 增加修订记录
15.2.7 读取修订记录
15.2.8 注册变更通知
15.2.9 监听变更通知
15.2.10 让SpliceListVC处理变更通知
15.2.11 让PhotoPicker处理变更通知
15.3 讨论
第16章Handoff
16.1 Handoff基础
16.2 开始
16.2.1 Handoff兼容性
16.2.2 测试Handoff
16.2.3 初始项目
16.2.4 设置Team ID
16.2.5 添加活动类型
16.3 view活动
16.3.1 创建活动并开始广播
16.3.2 更新用户活动
16.3.3 停止广播
16.4 edit活动
16.4.1 创建活动并开始广播
16.4.2 更新用户活动
16.4.3 停止广播
16.5 恢复用户活动
16.5.1 在应用程序委托中接收Handoff广播
16.5.2 恢复view活动
16.5.3 恢复edit活动
16.6 讨论
第17章WebKit
17.1 开始
17.1.1 初始项目
17.1.2 创建WKWebView实例
17.1.3 加载Web页
17.1.4 监视页面加载进度
17.1.5 页面导航
17.1.6 WKNavigationDelegate协议
17.2 WebKit进阶
17.2.1 脚本调试工具
17.2.2 隐藏网页内容
17.2.3 抓取页面内容
17.2.4 显示PopoverController
17.3 讨论
第18章Living Rendering
18.1 Living Rendering初步
18.1.1 开启Living Redering特性
18.1.2 暴露@IBInspectable属性
18.1.3 绘制boxLayer层
18.1.4 绘制markLayer层
18.1.5 绘制文本图层
18.2 Living Rendering进阶
18.2.1 使用位图
18.2.2 响应事件
18.3 讨论
第19章Visual Effects
19.1 Visual Effects初步
19.1.1 初始项目
19.1.2 使用Visual Effect View实现模糊特效
19.1.3 使用Visual Effect View实现Vibrancy效果
19.2 Visual Effects进阶
19.2.1 使用UIBlurEffect实现模糊效果
19.2.2 使用UIVibrancyEffect实现Vibrancy效果
19.3 讨论
第1章Swift初见
1.1什么是Swift
1.2 为什么要学习Swift
1.3Objective-C程序员学习Swift需要特别关注的地方
1.3.1类型推断与类型安全
1.3.2泛型
1.3.3数组和字典
1.3.4字符串
1.3.5switch语句
1.4 关于Swift初学者的一些问题
1.4.1从哪里获得Swift
1.4.2是否需要先学Objective-C,再学Swift
1.4.3"老鸟"们学习Swift是否会更轻松
1.4.4开发iOS 8和OS X Yosemite程序只能用Swift吗
1.4.5Swift是否能在当前的iOS和OS X版本上工作
1.4.6什么是Playground
1.4.7关于NDA
1.4.8有Swift能做到而Objective-C法做到的吗?反过来说呢
1.4.9某些API是否法被Swift调用
1.4.10在Playground中,如何以图表方式查看变量值
1.4.11如何打开REPL
1.4.12Swift如何调用Objective-C代码或第三方库
1.4.13Swift数组只能存储同一种类型的数据吗
1.4.14字典是否也和数组一样是强类型的
1.4.15Swift中有类似于Objective-C中的id吗
1.4.16在 Swift中,如何自省
1.4.17在Swift中如何使用GCD
1.4.18Objective-C中提供的Internationalization宏是否仍然可用
1.4.19仍然需要注意持有循环吗
1.4.20何时使用strong、weak以及unowned
第2章Swift语法基础
2.1Playground
2.2常量、变量、字符串
2.2.1常量
2.2.2变量
2.2.3 分号
2.2.4字符串
2.2.5字符串插值和运算
2.3简单类型和类型推断
2.3.1数值类型
2.3.2类型转换
2.3.3布尔类型
2.3.4区间
2.3.5元组
2.4流程控制
2.4.1for循环
2.4.2while语句
2.4.3if语句
2.4.4switch语句
第3章结构和类
3.1 可空类型
3.1.1 认识可空
3.1.2 声明可空
3.1.3 可空类型与非可空类型的转换
3.2 集合
3.2.1 数组
3.2.2 字典
3.3 枚举
3.3.1 定义枚举时填充原始值
3.3.2 使用其他类型
3.3.3 不填充原始值
3.3.4 联合
3.4 结构和类综述
3.4.1 属性
3.4.2 构造器
3.4.3 实例方法
3.4.4 类方法
3.4.5 下标方法
3.4.6 继承
第4章Swift函数式编程
4.1 函数
4.1.1 函数的定义
4.1.2 外部参数名
4.1.3 简化外部参数名
4.1.4 默认值
4.1.5 可变参数
4.1.6 变量参数和输出参数
4.1.7 用函数作为参数
4.1.8 函数作为返回值
4.1.9 嵌套函数
4.2 闭包
4.2.1 声明闭包
4.2.2 匿名闭包
4.2.3 尾末闭包
4.2.4 值捕获
4.3 协议
4.3.1 协议的声明
4.3.2 实现协议
4.3.3 协议是一种类型
4.3.4 组合协议
4.4 扩展
4.4.1 声明扩展
4.4.2 扩展和协议
4.5 泛型
4.5.1 泛型函数
4.5.2 泛型和协议
4.5.3 泛型约束
4.5.4 泛型类型
4.6 可空链
4.6.1 ?操作符
4.6.2 ??操作符
第二部分iOS 8 SDK
第5章故事板与自适应布局
5.1 自适应布局入门
5.1.1 自适应布局的4个概念
5.1.2 Universal故事板
5.1.3 Size类
5.1.4 自适应字体
5.1.5 设备相关图片
5.2 自适应布局进阶
5.2.1 自适应单元格
5.2.2 自动安装视图
5.2.3 UITraitCollection类
5.2.4 覆盖Size类
5.2.5 Size相关图片
5.2.6 显示/隐藏导航栏
5.2.7 UIAppearance和Size类
第6章UISplitViewController及旋屏
6.1 创建UISplitViewController应用
6.2 在iPhone App中使用UISplitViewController
6.2.1 创建Detail默认视图
6.2.2 在iPhone中展开UISplitViewController
6.2.3 记住用户选择
6.2.4 单元格指示器
6.2.5 对iPad进行适应
6.3 旋屏
6.3.1 旧的旋屏方法被废弃
6.3.2 自定义旋屏效果
6.3.3 单元格自适应大小
6.3.4 iPad旋屏
6.3.5 自适应的UILabel
第7章视图控制器的呈现
7.1 初始项目
7.2 内置的Presentation Controller
7.2.1 UIAlertController
7.2.2 UIPopoverPresentationController
7.2.3 UISearchController
7.3 自定义UIPresentationController
7.3.1 Presented控制器和Presenting控制器
7.3.2 创建基本的PresentationController
7.3.3 自定义转换动画
7.3.4 高级定制
第8章今日扩展
8.1 App扩展介绍
8.1.1 App扩展的类型
8.1.2 理解App扩展
8.2 今日扩展综述
8.2.1 介绍今日扩展
8.2.2 WeatherWidget示例
8.2.3 讨论
第9章分享扩展
9.1 案例项目:SinaWeiboShare
9.1.1 实现容器App
9.1.2 创建分享扩展
9.2 讨论
9.2.1 配置SLComposeSheetConfigurationItem
9.2.2 分享其他文件
第10章动作扩展
10.1 案例项目:SearchInICIBA
10.1.1 实现容器App
10.1.2 创建动作扩展
10.2 讨论
第11章照片编辑扩展
11.1 案例项目:PhotoVintage
11.1.1 实现容器App
11.1.2 实现照片编辑扩展
11.2 讨论
第12章文档提供者扩展
12.1 准备
12.1.1 工作机制
12.1.2 文档提供者扩展支持的4种操作
12.2 Bmob云服务
12.2.1 注册Bmob
12.2.2 创建应用
12.2.3 获取App Key
12.2.4 Bmob SDK
12.3 开始
12.3.1 添加扩展App
12.3.2 配置Info.plist和entitlements
12.4 加入Bmob SDK框架
12.4.1 添加CocoaPods框架
12.4.2 桥接头文件
12.4.3 上传图片到Bmob
12.4.4 实现Document Picker
12.4.5 实现宿主App
12.4.6 实现File Provider
12.5 讨论
第13章键盘扩展
13.1 准备
13.2 键盘扩展的限制
13.3 值得信任
13.4 网络访问
13.5 开始
13.5.1 创建键盘扩展
13.5.2 显示键盘
13.5.3 设计按钮及布局
13.6 实现KeyboardViewController
13.6.1 创建连接
13.6.2 实现按键处理
13.6.3 大小写转换
13.6.4 切换符号集
13.6.5 按键动画
13.6.6 键盘最终运行效果
13.7 讨论
第14章CloudKit
14.1 准备
14.1.1 用户授权
14.1.2 iCloud容器
14.1.3 数据库
14.1.4 Zone
14.1.5 记录
14.1.6 订阅
14.2 开始
14.2.1 打开iCloud
14.2.2 程序主界面
14.2.3 全局对象
14.2.4 获取用户ID及姓名
14.2.5 将数据封装为CKRecord
14.2.6 上传照片
14.2.7 查看已经上传的图片
14.3 高级API
14.3.1 不完全抓取
14.3.2 分页抓取
14.3.3 抓取并缓存图片
14.3.4 错误处理及网络重试
14.3.5 CloudKit Dashboard
14.4 讨论
第15章Photos框架
15.1 Photos初步
15.1.1 模型对象
15.1.2 抓取概述
15.1.3 检索内容
15.1.4 初始项目
15.1.5 获取用户授权
15.1.6 抓取
15.1.7 显示图片
15.1.8 缓存
15.1.9 标记用户选择
15.2 Photos进阶
15.2.1 API介绍
15.2.2 初始项目
15.2.3 创建新的拼接图
15.2.4 显示拼接图
15.2.5 收藏和删除
15.2.6 增加修订记录
15.2.7 读取修订记录
15.2.8 注册变更通知
15.2.9 监听变更通知
15.2.10 让SpliceListVC处理变更通知
15.2.11 让PhotoPicker处理变更通知
15.3 讨论
第16章Handoff
16.1 Handoff基础
16.2 开始
16.2.1 Handoff兼容性
16.2.2 测试Handoff
16.2.3 初始项目
16.2.4 设置Team ID
16.2.5 添加活动类型
16.3 view活动
16.3.1 创建活动并开始广播
16.3.2 更新用户活动
16.3.3 停止广播
16.4 edit活动
16.4.1 创建活动并开始广播
16.4.2 更新用户活动
16.4.3 停止广播
16.5 恢复用户活动
16.5.1 在应用程序委托中接收Handoff广播
16.5.2 恢复view活动
16.5.3 恢复edit活动
16.6 讨论
第17章WebKit
17.1 开始
17.1.1 初始项目
17.1.2 创建WKWebView实例
17.1.3 加载Web页
17.1.4 监视页面加载进度
17.1.5 页面导航
17.1.6 WKNavigationDelegate协议
17.2 WebKit进阶
17.2.1 脚本调试工具
17.2.2 隐藏网页内容
17.2.3 抓取页面内容
17.2.4 显示PopoverController
17.3 讨论
第18章Living Rendering
18.1 Living Rendering初步
18.1.1 开启Living Redering特性
18.1.2 暴露@IBInspectable属性
18.1.3 绘制boxLayer层
18.1.4 绘制markLayer层
18.1.5 绘制文本图层
18.2 Living Rendering进阶
18.2.1 使用位图
18.2.2 响应事件
18.3 讨论
第19章Visual Effects
19.1 Visual Effects初步
19.1.1 初始项目
19.1.2 使用Visual Effect View实现模糊特效
19.1.3 使用Visual Effect View实现Vibrancy效果
19.2 Visual Effects进阶
19.2.1 使用UIBlurEffect实现模糊效果
19.2.2 使用UIVibrancyEffect实现Vibrancy效果
19.3 讨论
Introduction
Swift 是苹果公司最新的、类型安全的现代编程语言,可用于 Cocoa 和 Cocoa Touch 开发。Swift 在苹果公司的 2014 年 WWDC 大会中首次亮相,至今已有近一年的历史。迄今为止,App 商店中已经出现了相当数量的Swift 应用。
iOS 8 SDK随Swift同步推出,但得到的关注却远远小于后者。尤其是国内的开发者,对新SDK的研究和了解更是乏善可陈。实际上,iOS 8为开发者带来的机遇,远甚于苹果的新晋开发语言Swift。
苹果全新设计了iOS 8,为它添加了大量新特性,例如App扩展,Cloud Kit、Health Kit以及经过精心设计的游戏开发框架。可以说,从来没有任何一个iOS的版本,能够像iOS 8一样,给我们带来如此大的改变。每一个使用过iOS 8 SDK的开发者都能够感受到它前所未有的强大。
读者对象
本书主要适合以下读者阅读:
一是有 SDK 开发经验,想将现有App迁移到iOS 8的开发者,但苦于没有专门介绍 iOS 8 SDK 的书籍;
二是已经具备一定 Swift 语言基础,但缺少进一步结合 SDK 进行Swift开发示例或没有足够代码积累的读者;
三是有一定 SDK 开发经验,但还没有学习过 Swift 语言,想快速学习 Swift 并立即进行工程实践的读者;
四是既想快速学习 Swift 又需要详细了解 iOS 8 SDK的读者。
内容概览
全书共19章,分为两部分。
从第1章到第4章为本书第一部分,这部分介绍 Swift 语言。
第1章介绍学习 Swift 之前需要了解的背景知识和学习过程中需要注意的“注意事项”,主要包括Swift 的源起、对Objective-C开发者带来的影响,以及初学者FAQ。
第2章开始介绍 Swift 语言的基本语法,包括常量、变量、类型推断、字符串、流程控制。有了这些基础知识,我们起码可以在接下来的章节里写出一些“程序”。
第3章介绍 Swift 语言强大的类型系统,包括元组、可空类型、集合、枚举、结构和类,其中有不少类型是前任的Objective-C语言所没有的,这也是 Swift 最为独特的地方。
第4章介绍函数、闭包、协议、扩展、泛型。这些内容并不是孤立的,它们互相之间有着非常紧密的联系,充分反映了苹果在Objective-C发展过程中对 FP(函数式编程)方面的缺失做出的反思和改变。
从第5章开始,为本书第二部分,开始陆续介绍 iOS 8 SDK 中的新特性。
第5章介绍 iOS 8 在 UI 方面的两个主要内容:自动布局和自适应布局;尤其是后者“一次设计,所有设备运行”的特性。
第6章介绍Split View Controller和旋屏。尤其是苹果对前者的改变,是广大 iOS 开发者期盼已久的事情。
第7章介绍 Presentation Controller。iOS 8 统一了以前版本中的视图呈现方式,例如 Alert、Popover 和 Search Controller,使开发者可以完全控制 View Controller 的呈现及动画过程。
第8章至第 13章,依次介绍了 iOS 8 新增的App 扩展,尤其对其中的几个组件进行了详细介绍:今日、分享、动作、照片编辑、文档提供者、键盘。
第14章通过一个示例项目对CloudKit框架进行介绍。
第15章介绍Photos 框架,包括对照片的编辑处理。
第16章以案例的形式介绍HandOff框架。
第17章介绍WebKit,尤其是苹果的全新脚本引擎。
第18章介绍Live Rendering,并演示如何在自定义组件中使用Live Rendering技术。
第19章介绍Visual Effects。程序员从此可以使用官方API来生成一些有趣的视觉效果,例如模糊效果和雾玻璃效果。
特色分析
本书所面向的读者市场尚是一片空白。目前市面上(国内)还没有专门介绍 iOS 8 SDK 的图书。
本书顺应了市场潮流。本书借助苹果发布新版本 SDK 及新开发语言 Swift 之机,从一个应用开发者的角度,对二者进行了深入介绍,使开发者在熟悉新框架的过程中同时了解 Swift 这门语言。
内容深入,案例丰富。本书第二部分介绍了 iOS 8 SDK 框架的新特性,而且基本上每个新特性都配有一个单独的案例项目。
iOS 8 SDK随Swift同步推出,但得到的关注却远远小于后者。尤其是国内的开发者,对新SDK的研究和了解更是乏善可陈。实际上,iOS 8为开发者带来的机遇,远甚于苹果的新晋开发语言Swift。
苹果全新设计了iOS 8,为它添加了大量新特性,例如App扩展,Cloud Kit、Health Kit以及经过精心设计的游戏开发框架。可以说,从来没有任何一个iOS的版本,能够像iOS 8一样,给我们带来如此大的改变。每一个使用过iOS 8 SDK的开发者都能够感受到它前所未有的强大。
读者对象
本书主要适合以下读者阅读:
一是有 SDK 开发经验,想将现有App迁移到iOS 8的开发者,但苦于没有专门介绍 iOS 8 SDK 的书籍;
二是已经具备一定 Swift 语言基础,但缺少进一步结合 SDK 进行Swift开发示例或没有足够代码积累的读者;
三是有一定 SDK 开发经验,但还没有学习过 Swift 语言,想快速学习 Swift 并立即进行工程实践的读者;
四是既想快速学习 Swift 又需要详细了解 iOS 8 SDK的读者。
内容概览
全书共19章,分为两部分。
从第1章到第4章为本书第一部分,这部分介绍 Swift 语言。
第1章介绍学习 Swift 之前需要了解的背景知识和学习过程中需要注意的“注意事项”,主要包括Swift 的源起、对Objective-C开发者带来的影响,以及初学者FAQ。
第2章开始介绍 Swift 语言的基本语法,包括常量、变量、类型推断、字符串、流程控制。有了这些基础知识,我们起码可以在接下来的章节里写出一些“程序”。
第3章介绍 Swift 语言强大的类型系统,包括元组、可空类型、集合、枚举、结构和类,其中有不少类型是前任的Objective-C语言所没有的,这也是 Swift 最为独特的地方。
第4章介绍函数、闭包、协议、扩展、泛型。这些内容并不是孤立的,它们互相之间有着非常紧密的联系,充分反映了苹果在Objective-C发展过程中对 FP(函数式编程)方面的缺失做出的反思和改变。
从第5章开始,为本书第二部分,开始陆续介绍 iOS 8 SDK 中的新特性。
第5章介绍 iOS 8 在 UI 方面的两个主要内容:自动布局和自适应布局;尤其是后者“一次设计,所有设备运行”的特性。
第6章介绍Split View Controller和旋屏。尤其是苹果对前者的改变,是广大 iOS 开发者期盼已久的事情。
第7章介绍 Presentation Controller。iOS 8 统一了以前版本中的视图呈现方式,例如 Alert、Popover 和 Search Controller,使开发者可以完全控制 View Controller 的呈现及动画过程。
第8章至第 13章,依次介绍了 iOS 8 新增的App 扩展,尤其对其中的几个组件进行了详细介绍:今日、分享、动作、照片编辑、文档提供者、键盘。
第14章通过一个示例项目对CloudKit框架进行介绍。
第15章介绍Photos 框架,包括对照片的编辑处理。
第16章以案例的形式介绍HandOff框架。
第17章介绍WebKit,尤其是苹果的全新脚本引擎。
第18章介绍Live Rendering,并演示如何在自定义组件中使用Live Rendering技术。
第19章介绍Visual Effects。程序员从此可以使用官方API来生成一些有趣的视觉效果,例如模糊效果和雾玻璃效果。
特色分析
本书所面向的读者市场尚是一片空白。目前市面上(国内)还没有专门介绍 iOS 8 SDK 的图书。
本书顺应了市场潮流。本书借助苹果发布新版本 SDK 及新开发语言 Swift 之机,从一个应用开发者的角度,对二者进行了深入介绍,使开发者在熟悉新框架的过程中同时了解 Swift 这门语言。
内容深入,案例丰富。本书第二部分介绍了 iOS 8 SDK 框架的新特性,而且基本上每个新特性都配有一个单独的案例项目。
Editer Recommend
CSDN排名141博主力作!点击近200万次博客集成之作!
Swift和iOS 8“合二为一”——实战性强,拒绝泛泛,直逼症结,真正的经验之作!
本书创新性地将语言和框架结合起来介绍。
本书主要内容包括:Swift语言的基本特性,iOS 8对UI方面的改善,App扩展,包括今日、分享、动作、照片编辑、文档提供者、键盘,增强框架,包括CloudKit、Photos、HandOff和WebKit,以及Live Rendering和Visual Effects等。
海报:
Content Description
《iOS 8 Swift编程指南》创新性地将语言和框架结合起来介绍。全书分为两部分:一部分是 Swift 语言介绍,共4章;第二部分则是iOS 8特性的介绍,从App开发者的角度阐述Swift语言在新SDK上的实际应用。本书在介绍iOS 8每个特性的过程中,配以丰富的Swift代码案例,以此让读者在学习iOS 8的同时,积累大量的 Swift 编码经验。
《iOS 8 Swift编程指南》适合所有层次的iOS开发者阅读、参考,无论你是否具有Objective-C编程经验。
《iOS 8 Swift编程指南》适合所有层次的iOS开发者阅读、参考,无论你是否具有Objective-C编程经验。
Author Description
杨宏焱,男,曾任某大型国企高级软件工程师、移动开发领域知名专家。有多年 j2ee 编程经验,熟悉 SqlServer、Oracle 数据库及 T-SQL、PL/SQL 编程。2009年开始专注于 iOS 开发,精通Objective C 和 Swift 本地App开发,活跃于CSDN、CocoaChina等多个开发者社区,CSDN移动开发博客专家(博客地址:https://blog.csdn.net/kmyhy)、CSDN学院讲师。
Catalogue
第一部分Swift语言编程指南
第1章Swift初见
1.1什么是Swift
1.2 为什么要学习Swift
1.3Objective-C程序员学习Swift需要特别关注的地方
1.3.1类型推断与类型安全
1.3.2泛型
1.3.3数组和字典
1.3.4字符串
1.3.5switch语句
1.4 关于Swift初学者的一些问题
1.4.1从哪里获得Swift
1.4.2是否需要先学Objective-C,再学Swift
1.4.3"老鸟"们学习Swift是否会更轻松
1.4.4开发iOS 8和OS X Yosemite程序只能用Swift吗
1.4.5Swift是否能在当前的iOS和OS X版本上工作
1.4.6什么是Playground
1.4.7关于NDA
1.4.8有Swift能做到而Objective-C法做到的吗?反过来说呢
1.4.9某些API是否法被Swift调用
1.4.10在Playground中,如何以图表方式查看变量值
1.4.11如何打开REPL
1.4.12Swift如何调用Objective-C代码或第三方库
1.4.13Swift数组只能存储同一种类型的数据吗
1.4.14字典是否也和数组一样是强类型的
1.4.15Swift中有类似于Objective-C中的id吗
1.4.16在 Swift中,如何自省
1.4.17在Swift中如何使用GCD
1.4.18Objective-C中提供的Internationalization宏是否仍然可用
1.4.19仍然需要注意持有循环吗
1.4.20何时使用strong、weak以及unowned
第2章Swift语法基础
2.1Playground
2.2常量、变量、字符串
2.2.1常量
2.2.2变量
2.2.3 分号
2.2.4字符串
2.2.5字符串插值和运算
2.3简单类型和类型推断
2.3.1数值类型
2.3.2类型转换
2.3.3布尔类型
2.3.4区间
2.3.5元组
2.4流程控制
2.4.1for循环
2.4.2while语句
2.4.3if语句
2.4.4switch语句
第3章结构和类
3.1 可空类型
3.1.1 认识可空
3.1.2 声明可空
3.1.3 可空类型与非可空类型的转换
3.2 集合
3.2.1 数组
3.2.2 字典
3.3 枚举
3.3.1 定义枚举时填充原始值
3.3.2 使用其他类型
3.3.3 不填充原始值
3.3.4 联合
3.4 结构和类综述
3.4.1 属性
3.4.2 构造器
3.4.3 实例方法
3.4.4 类方法
3.4.5 下标方法
3.4.6 继承
第4章Swift函数式编程
4.1 函数
4.1.1 函数的定义
4.1.2 外部参数名
4.1.3 简化外部参数名
4.1.4 默认值
4.1.5 可变参数
4.1.6 变量参数和输出参数
4.1.7 用函数作为参数
4.1.8 函数作为返回值
4.1.9 嵌套函数
4.2 闭包
4.2.1 声明闭包
4.2.2 匿名闭包
4.2.3 尾末闭包
4.2.4 值捕获
4.3 协议
4.3.1 协议的声明
4.3.2 实现协议
4.3.3 协议是一种类型
4.3.4 组合协议
4.4 扩展
4.4.1 声明扩展
4.4.2 扩展和协议
4.5 泛型
4.5.1 泛型函数
4.5.2 泛型和协议
4.5.3 泛型约束
4.5.4 泛型类型
4.6 可空链
4.6.1 ?操作符
4.6.2 ??操作符
第二部分iOS 8 SDK
第5章故事板与自适应布局
5.1 自适应布局入门
5.1.1 自适应布局的4个概念
5.1.2 Universal故事板
5.1.3 Size类
5.1.4 自适应字体
5.1.5 设备相关图片
5.2 自适应布局进阶
5.2.1 自适应单元格
5.2.2 自动安装视图
5.2.3 UITraitCollection类
5.2.4 覆盖Size类
5.2.5 Size相关图片
5.2.6 显示/隐藏导航栏
5.2.7 UIAppearance和Size类
第6章UISplitViewController及旋屏
6.1 创建UISplitViewController应用
6.2 在iPhone App中使用UISplitViewController
6.2.1 创建Detail默认视图
6.2.2 在iPhone中展开UISplitViewController
6.2.3 记住用户选择
6.2.4 单元格指示器
6.2.5 对iPad进行适应
6.3 旋屏
6.3.1 旧的旋屏方法被废弃
6.3.2 自定义旋屏效果
6.3.3 单元格自适应大小
6.3.4 iPad旋屏
6.3.5 自适应的UILabel
第7章视图控制器的呈现
7.1 初始项目
7.2 内置的Presentation Controller
7.2.1 UIAlertController
7.2.2 UIPopoverPresentationController
7.2.3 UISearchController
7.3 自定义UIPresentationController
7.3.1 Presented控制器和Presenting控制器
7.3.2 创建基本的PresentationController
7.3.3 自定义转换动画
7.3.4 高级定制
第8章今日扩展
8.1 App扩展介绍
8.1.1 App扩展的类型
8.1.2 理解App扩展
8.2 今日扩展综述
8.2.1 介绍今日扩展
8.2.2 WeatherWidget示例
8.2.3 讨论
第9章分享扩展
9.1 案例项目:SinaWeiboShare
9.1.1 实现容器App
9.1.2 创建分享扩展
9.2 讨论
9.2.1 配置SLComposeSheetConfigurationItem
9.2.2 分享其他文件
第10章动作扩展
10.1 案例项目:SearchInICIBA
10.1.1 实现容器App
10.1.2 创建动作扩展
10.2 讨论
第11章照片编辑扩展
11.1 案例项目:PhotoVintage
11.1.1 实现容器App
11.1.2 实现照片编辑扩展
11.2 讨论
第12章文档提供者扩展
12.1 准备
12.1.1 工作机制
12.1.2 文档提供者扩展支持的4种操作
12.2 Bmob云服务
12.2.1 注册Bmob
12.2.2 创建应用
12.2.3 获取App Key
12.2.4 Bmob SDK
12.3 开始
12.3.1 添加扩展App
12.3.2 配置Info.plist和entitlements
12.4 加入Bmob SDK框架
12.4.1 添加CocoaPods框架
12.4.2 桥接头文件
12.4.3 上传图片到Bmob
12.4.4 实现Document Picker
12.4.5 实现宿主App
12.4.6 实现File Provider
12.5 讨论
第13章键盘扩展
13.1 准备
13.2 键盘扩展的限制
13.3 值得信任
13.4 网络访问
13.5 开始
13.5.1 创建键盘扩展
13.5.2 显示键盘
13.5.3 设计按钮及布局
13.6 实现KeyboardViewController
13.6.1 创建连接
13.6.2 实现按键处理
13.6.3 大小写转换
13.6.4 切换符号集
13.6.5 按键动画
13.6.6 键盘最终运行效果
13.7 讨论
第14章CloudKit
14.1 准备
14.1.1 用户授权
14.1.2 iCloud容器
14.1.3 数据库
14.1.4 Zone
14.1.5 记录
14.1.6 订阅
14.2 开始
14.2.1 打开iCloud
14.2.2 程序主界面
14.2.3 全局对象
14.2.4 获取用户ID及姓名
14.2.5 将数据封装为CKRecord
14.2.6 上传照片
14.2.7 查看已经上传的图片
14.3 高级API
14.3.1 不完全抓取
14.3.2 分页抓取
14.3.3 抓取并缓存图片
14.3.4 错误处理及网络重试
14.3.5 CloudKit Dashboard
14.4 讨论
第15章Photos框架
15.1 Photos初步
15.1.1 模型对象
15.1.2 抓取概述
15.1.3 检索内容
15.1.4 初始项目
15.1.5 获取用户授权
15.1.6 抓取
15.1.7 显示图片
15.1.8 缓存
15.1.9 标记用户选择
15.2 Photos进阶
15.2.1 API介绍
15.2.2 初始项目
15.2.3 创建新的拼接图
15.2.4 显示拼接图
15.2.5 收藏和删除
15.2.6 增加修订记录
15.2.7 读取修订记录
15.2.8 注册变更通知
15.2.9 监听变更通知
15.2.10 让SpliceListVC处理变更通知
15.2.11 让PhotoPicker处理变更通知
15.3 讨论
第16章Handoff
16.1 Handoff基础
16.2 开始
16.2.1 Handoff兼容性
16.2.2 测试Handoff
16.2.3 初始项目
16.2.4 设置Team ID
16.2.5 添加活动类型
16.3 view活动
16.3.1 创建活动并开始广播
16.3.2 更新用户活动
16.3.3 停止广播
16.4 edit活动
16.4.1 创建活动并开始广播
16.4.2 更新用户活动
16.4.3 停止广播
16.5 恢复用户活动
16.5.1 在应用程序委托中接收Handoff广播
16.5.2 恢复view活动
16.5.3 恢复edit活动
16.6 讨论
第17章WebKit
17.1 开始
17.1.1 初始项目
17.1.2 创建WKWebView实例
17.1.3 加载Web页
17.1.4 监视页面加载进度
17.1.5 页面导航
17.1.6 WKNavigationDelegate协议
17.2 WebKit进阶
17.2.1 脚本调试工具
17.2.2 隐藏网页内容
17.2.3 抓取页面内容
17.2.4 显示PopoverController
17.3 讨论
第18章Living Rendering
18.1 Living Rendering初步
18.1.1 开启Living Redering特性
18.1.2 暴露@IBInspectable属性
18.1.3 绘制boxLayer层
18.1.4 绘制markLayer层
18.1.5 绘制文本图层
18.2 Living Rendering进阶
18.2.1 使用位图
18.2.2 响应事件
18.3 讨论
第19章Visual Effects
19.1 Visual Effects初步
19.1.1 初始项目
19.1.2 使用Visual Effect View实现模糊特效
19.1.3 使用Visual Effect View实现Vibrancy效果
19.2 Visual Effects进阶
19.2.1 使用UIBlurEffect实现模糊效果
19.2.2 使用UIVibrancyEffect实现Vibrancy效果
19.3 讨论
第1章Swift初见
1.1什么是Swift
1.2 为什么要学习Swift
1.3Objective-C程序员学习Swift需要特别关注的地方
1.3.1类型推断与类型安全
1.3.2泛型
1.3.3数组和字典
1.3.4字符串
1.3.5switch语句
1.4 关于Swift初学者的一些问题
1.4.1从哪里获得Swift
1.4.2是否需要先学Objective-C,再学Swift
1.4.3"老鸟"们学习Swift是否会更轻松
1.4.4开发iOS 8和OS X Yosemite程序只能用Swift吗
1.4.5Swift是否能在当前的iOS和OS X版本上工作
1.4.6什么是Playground
1.4.7关于NDA
1.4.8有Swift能做到而Objective-C法做到的吗?反过来说呢
1.4.9某些API是否法被Swift调用
1.4.10在Playground中,如何以图表方式查看变量值
1.4.11如何打开REPL
1.4.12Swift如何调用Objective-C代码或第三方库
1.4.13Swift数组只能存储同一种类型的数据吗
1.4.14字典是否也和数组一样是强类型的
1.4.15Swift中有类似于Objective-C中的id吗
1.4.16在 Swift中,如何自省
1.4.17在Swift中如何使用GCD
1.4.18Objective-C中提供的Internationalization宏是否仍然可用
1.4.19仍然需要注意持有循环吗
1.4.20何时使用strong、weak以及unowned
第2章Swift语法基础
2.1Playground
2.2常量、变量、字符串
2.2.1常量
2.2.2变量
2.2.3 分号
2.2.4字符串
2.2.5字符串插值和运算
2.3简单类型和类型推断
2.3.1数值类型
2.3.2类型转换
2.3.3布尔类型
2.3.4区间
2.3.5元组
2.4流程控制
2.4.1for循环
2.4.2while语句
2.4.3if语句
2.4.4switch语句
第3章结构和类
3.1 可空类型
3.1.1 认识可空
3.1.2 声明可空
3.1.3 可空类型与非可空类型的转换
3.2 集合
3.2.1 数组
3.2.2 字典
3.3 枚举
3.3.1 定义枚举时填充原始值
3.3.2 使用其他类型
3.3.3 不填充原始值
3.3.4 联合
3.4 结构和类综述
3.4.1 属性
3.4.2 构造器
3.4.3 实例方法
3.4.4 类方法
3.4.5 下标方法
3.4.6 继承
第4章Swift函数式编程
4.1 函数
4.1.1 函数的定义
4.1.2 外部参数名
4.1.3 简化外部参数名
4.1.4 默认值
4.1.5 可变参数
4.1.6 变量参数和输出参数
4.1.7 用函数作为参数
4.1.8 函数作为返回值
4.1.9 嵌套函数
4.2 闭包
4.2.1 声明闭包
4.2.2 匿名闭包
4.2.3 尾末闭包
4.2.4 值捕获
4.3 协议
4.3.1 协议的声明
4.3.2 实现协议
4.3.3 协议是一种类型
4.3.4 组合协议
4.4 扩展
4.4.1 声明扩展
4.4.2 扩展和协议
4.5 泛型
4.5.1 泛型函数
4.5.2 泛型和协议
4.5.3 泛型约束
4.5.4 泛型类型
4.6 可空链
4.6.1 ?操作符
4.6.2 ??操作符
第二部分iOS 8 SDK
第5章故事板与自适应布局
5.1 自适应布局入门
5.1.1 自适应布局的4个概念
5.1.2 Universal故事板
5.1.3 Size类
5.1.4 自适应字体
5.1.5 设备相关图片
5.2 自适应布局进阶
5.2.1 自适应单元格
5.2.2 自动安装视图
5.2.3 UITraitCollection类
5.2.4 覆盖Size类
5.2.5 Size相关图片
5.2.6 显示/隐藏导航栏
5.2.7 UIAppearance和Size类
第6章UISplitViewController及旋屏
6.1 创建UISplitViewController应用
6.2 在iPhone App中使用UISplitViewController
6.2.1 创建Detail默认视图
6.2.2 在iPhone中展开UISplitViewController
6.2.3 记住用户选择
6.2.4 单元格指示器
6.2.5 对iPad进行适应
6.3 旋屏
6.3.1 旧的旋屏方法被废弃
6.3.2 自定义旋屏效果
6.3.3 单元格自适应大小
6.3.4 iPad旋屏
6.3.5 自适应的UILabel
第7章视图控制器的呈现
7.1 初始项目
7.2 内置的Presentation Controller
7.2.1 UIAlertController
7.2.2 UIPopoverPresentationController
7.2.3 UISearchController
7.3 自定义UIPresentationController
7.3.1 Presented控制器和Presenting控制器
7.3.2 创建基本的PresentationController
7.3.3 自定义转换动画
7.3.4 高级定制
第8章今日扩展
8.1 App扩展介绍
8.1.1 App扩展的类型
8.1.2 理解App扩展
8.2 今日扩展综述
8.2.1 介绍今日扩展
8.2.2 WeatherWidget示例
8.2.3 讨论
第9章分享扩展
9.1 案例项目:SinaWeiboShare
9.1.1 实现容器App
9.1.2 创建分享扩展
9.2 讨论
9.2.1 配置SLComposeSheetConfigurationItem
9.2.2 分享其他文件
第10章动作扩展
10.1 案例项目:SearchInICIBA
10.1.1 实现容器App
10.1.2 创建动作扩展
10.2 讨论
第11章照片编辑扩展
11.1 案例项目:PhotoVintage
11.1.1 实现容器App
11.1.2 实现照片编辑扩展
11.2 讨论
第12章文档提供者扩展
12.1 准备
12.1.1 工作机制
12.1.2 文档提供者扩展支持的4种操作
12.2 Bmob云服务
12.2.1 注册Bmob
12.2.2 创建应用
12.2.3 获取App Key
12.2.4 Bmob SDK
12.3 开始
12.3.1 添加扩展App
12.3.2 配置Info.plist和entitlements
12.4 加入Bmob SDK框架
12.4.1 添加CocoaPods框架
12.4.2 桥接头文件
12.4.3 上传图片到Bmob
12.4.4 实现Document Picker
12.4.5 实现宿主App
12.4.6 实现File Provider
12.5 讨论
第13章键盘扩展
13.1 准备
13.2 键盘扩展的限制
13.3 值得信任
13.4 网络访问
13.5 开始
13.5.1 创建键盘扩展
13.5.2 显示键盘
13.5.3 设计按钮及布局
13.6 实现KeyboardViewController
13.6.1 创建连接
13.6.2 实现按键处理
13.6.3 大小写转换
13.6.4 切换符号集
13.6.5 按键动画
13.6.6 键盘最终运行效果
13.7 讨论
第14章CloudKit
14.1 准备
14.1.1 用户授权
14.1.2 iCloud容器
14.1.3 数据库
14.1.4 Zone
14.1.5 记录
14.1.6 订阅
14.2 开始
14.2.1 打开iCloud
14.2.2 程序主界面
14.2.3 全局对象
14.2.4 获取用户ID及姓名
14.2.5 将数据封装为CKRecord
14.2.6 上传照片
14.2.7 查看已经上传的图片
14.3 高级API
14.3.1 不完全抓取
14.3.2 分页抓取
14.3.3 抓取并缓存图片
14.3.4 错误处理及网络重试
14.3.5 CloudKit Dashboard
14.4 讨论
第15章Photos框架
15.1 Photos初步
15.1.1 模型对象
15.1.2 抓取概述
15.1.3 检索内容
15.1.4 初始项目
15.1.5 获取用户授权
15.1.6 抓取
15.1.7 显示图片
15.1.8 缓存
15.1.9 标记用户选择
15.2 Photos进阶
15.2.1 API介绍
15.2.2 初始项目
15.2.3 创建新的拼接图
15.2.4 显示拼接图
15.2.5 收藏和删除
15.2.6 增加修订记录
15.2.7 读取修订记录
15.2.8 注册变更通知
15.2.9 监听变更通知
15.2.10 让SpliceListVC处理变更通知
15.2.11 让PhotoPicker处理变更通知
15.3 讨论
第16章Handoff
16.1 Handoff基础
16.2 开始
16.2.1 Handoff兼容性
16.2.2 测试Handoff
16.2.3 初始项目
16.2.4 设置Team ID
16.2.5 添加活动类型
16.3 view活动
16.3.1 创建活动并开始广播
16.3.2 更新用户活动
16.3.3 停止广播
16.4 edit活动
16.4.1 创建活动并开始广播
16.4.2 更新用户活动
16.4.3 停止广播
16.5 恢复用户活动
16.5.1 在应用程序委托中接收Handoff广播
16.5.2 恢复view活动
16.5.3 恢复edit活动
16.6 讨论
第17章WebKit
17.1 开始
17.1.1 初始项目
17.1.2 创建WKWebView实例
17.1.3 加载Web页
17.1.4 监视页面加载进度
17.1.5 页面导航
17.1.6 WKNavigationDelegate协议
17.2 WebKit进阶
17.2.1 脚本调试工具
17.2.2 隐藏网页内容
17.2.3 抓取页面内容
17.2.4 显示PopoverController
17.3 讨论
第18章Living Rendering
18.1 Living Rendering初步
18.1.1 开启Living Redering特性
18.1.2 暴露@IBInspectable属性
18.1.3 绘制boxLayer层
18.1.4 绘制markLayer层
18.1.5 绘制文本图层
18.2 Living Rendering进阶
18.2.1 使用位图
18.2.2 响应事件
18.3 讨论
第19章Visual Effects
19.1 Visual Effects初步
19.1.1 初始项目
19.1.2 使用Visual Effect View实现模糊特效
19.1.3 使用Visual Effect View实现Vibrancy效果
19.2 Visual Effects进阶
19.2.1 使用UIBlurEffect实现模糊效果
19.2.2 使用UIVibrancyEffect实现Vibrancy效果
19.3 讨论
Introduction
Swift 是苹果公司最新的、类型安全的现代编程语言,可用于 Cocoa 和 Cocoa Touch 开发。Swift 在苹果公司的 2014 年 WWDC 大会中首次亮相,至今已有近一年的历史。迄今为止,App 商店中已经出现了相当数量的Swift 应用。
iOS 8 SDK随Swift同步推出,但得到的关注却远远小于后者。尤其是国内的开发者,对新SDK的研究和了解更是乏善可陈。实际上,iOS 8为开发者带来的机遇,远甚于苹果的新晋开发语言Swift。
苹果全新设计了iOS 8,为它添加了大量新特性,例如App扩展,Cloud Kit、Health Kit以及经过精心设计的游戏开发框架。可以说,从来没有任何一个iOS的版本,能够像iOS 8一样,给我们带来如此大的改变。每一个使用过iOS 8 SDK的开发者都能够感受到它前所未有的强大。
读者对象
本书主要适合以下读者阅读:
一是有 SDK 开发经验,想将现有App迁移到iOS 8的开发者,但苦于没有专门介绍 iOS 8 SDK 的书籍;
二是已经具备一定 Swift 语言基础,但缺少进一步结合 SDK 进行Swift开发示例或没有足够代码积累的读者;
三是有一定 SDK 开发经验,但还没有学习过 Swift 语言,想快速学习 Swift 并立即进行工程实践的读者;
四是既想快速学习 Swift 又需要详细了解 iOS 8 SDK的读者。
内容概览
全书共19章,分为两部分。
从第1章到第4章为本书第一部分,这部分介绍 Swift 语言。
第1章介绍学习 Swift 之前需要了解的背景知识和学习过程中需要注意的“注意事项”,主要包括Swift 的源起、对Objective-C开发者带来的影响,以及初学者FAQ。
第2章开始介绍 Swift 语言的基本语法,包括常量、变量、类型推断、字符串、流程控制。有了这些基础知识,我们起码可以在接下来的章节里写出一些“程序”。
第3章介绍 Swift 语言强大的类型系统,包括元组、可空类型、集合、枚举、结构和类,其中有不少类型是前任的Objective-C语言所没有的,这也是 Swift 最为独特的地方。
第4章介绍函数、闭包、协议、扩展、泛型。这些内容并不是孤立的,它们互相之间有着非常紧密的联系,充分反映了苹果在Objective-C发展过程中对 FP(函数式编程)方面的缺失做出的反思和改变。
从第5章开始,为本书第二部分,开始陆续介绍 iOS 8 SDK 中的新特性。
第5章介绍 iOS 8 在 UI 方面的两个主要内容:自动布局和自适应布局;尤其是后者“一次设计,所有设备运行”的特性。
第6章介绍Split View Controller和旋屏。尤其是苹果对前者的改变,是广大 iOS 开发者期盼已久的事情。
第7章介绍 Presentation Controller。iOS 8 统一了以前版本中的视图呈现方式,例如 Alert、Popover 和 Search Controller,使开发者可以完全控制 View Controller 的呈现及动画过程。
第8章至第 13章,依次介绍了 iOS 8 新增的App 扩展,尤其对其中的几个组件进行了详细介绍:今日、分享、动作、照片编辑、文档提供者、键盘。
第14章通过一个示例项目对CloudKit框架进行介绍。
第15章介绍Photos 框架,包括对照片的编辑处理。
第16章以案例的形式介绍HandOff框架。
第17章介绍WebKit,尤其是苹果的全新脚本引擎。
第18章介绍Live Rendering,并演示如何在自定义组件中使用Live Rendering技术。
第19章介绍Visual Effects。程序员从此可以使用官方API来生成一些有趣的视觉效果,例如模糊效果和雾玻璃效果。
特色分析
本书所面向的读者市场尚是一片空白。目前市面上(国内)还没有专门介绍 iOS 8 SDK 的图书。
本书顺应了市场潮流。本书借助苹果发布新版本 SDK 及新开发语言 Swift 之机,从一个应用开发者的角度,对二者进行了深入介绍,使开发者在熟悉新框架的过程中同时了解 Swift 这门语言。
内容深入,案例丰富。本书第二部分介绍了 iOS 8 SDK 框架的新特性,而且基本上每个新特性都配有一个单独的案例项目。
iOS 8 SDK随Swift同步推出,但得到的关注却远远小于后者。尤其是国内的开发者,对新SDK的研究和了解更是乏善可陈。实际上,iOS 8为开发者带来的机遇,远甚于苹果的新晋开发语言Swift。
苹果全新设计了iOS 8,为它添加了大量新特性,例如App扩展,Cloud Kit、Health Kit以及经过精心设计的游戏开发框架。可以说,从来没有任何一个iOS的版本,能够像iOS 8一样,给我们带来如此大的改变。每一个使用过iOS 8 SDK的开发者都能够感受到它前所未有的强大。
读者对象
本书主要适合以下读者阅读:
一是有 SDK 开发经验,想将现有App迁移到iOS 8的开发者,但苦于没有专门介绍 iOS 8 SDK 的书籍;
二是已经具备一定 Swift 语言基础,但缺少进一步结合 SDK 进行Swift开发示例或没有足够代码积累的读者;
三是有一定 SDK 开发经验,但还没有学习过 Swift 语言,想快速学习 Swift 并立即进行工程实践的读者;
四是既想快速学习 Swift 又需要详细了解 iOS 8 SDK的读者。
内容概览
全书共19章,分为两部分。
从第1章到第4章为本书第一部分,这部分介绍 Swift 语言。
第1章介绍学习 Swift 之前需要了解的背景知识和学习过程中需要注意的“注意事项”,主要包括Swift 的源起、对Objective-C开发者带来的影响,以及初学者FAQ。
第2章开始介绍 Swift 语言的基本语法,包括常量、变量、类型推断、字符串、流程控制。有了这些基础知识,我们起码可以在接下来的章节里写出一些“程序”。
第3章介绍 Swift 语言强大的类型系统,包括元组、可空类型、集合、枚举、结构和类,其中有不少类型是前任的Objective-C语言所没有的,这也是 Swift 最为独特的地方。
第4章介绍函数、闭包、协议、扩展、泛型。这些内容并不是孤立的,它们互相之间有着非常紧密的联系,充分反映了苹果在Objective-C发展过程中对 FP(函数式编程)方面的缺失做出的反思和改变。
从第5章开始,为本书第二部分,开始陆续介绍 iOS 8 SDK 中的新特性。
第5章介绍 iOS 8 在 UI 方面的两个主要内容:自动布局和自适应布局;尤其是后者“一次设计,所有设备运行”的特性。
第6章介绍Split View Controller和旋屏。尤其是苹果对前者的改变,是广大 iOS 开发者期盼已久的事情。
第7章介绍 Presentation Controller。iOS 8 统一了以前版本中的视图呈现方式,例如 Alert、Popover 和 Search Controller,使开发者可以完全控制 View Controller 的呈现及动画过程。
第8章至第 13章,依次介绍了 iOS 8 新增的App 扩展,尤其对其中的几个组件进行了详细介绍:今日、分享、动作、照片编辑、文档提供者、键盘。
第14章通过一个示例项目对CloudKit框架进行介绍。
第15章介绍Photos 框架,包括对照片的编辑处理。
第16章以案例的形式介绍HandOff框架。
第17章介绍WebKit,尤其是苹果的全新脚本引擎。
第18章介绍Live Rendering,并演示如何在自定义组件中使用Live Rendering技术。
第19章介绍Visual Effects。程序员从此可以使用官方API来生成一些有趣的视觉效果,例如模糊效果和雾玻璃效果。
特色分析
本书所面向的读者市场尚是一片空白。目前市面上(国内)还没有专门介绍 iOS 8 SDK 的图书。
本书顺应了市场潮流。本书借助苹果发布新版本 SDK 及新开发语言 Swift 之机,从一个应用开发者的角度,对二者进行了深入介绍,使开发者在熟悉新框架的过程中同时了解 Swift 这门语言。
内容深入,案例丰富。本书第二部分介绍了 iOS 8 SDK 框架的新特性,而且基本上每个新特性都配有一个单独的案例项目。
規格參數
品牌 | 京東圖書 |
品牌屬地 | 中國 |
免責聲明
產品價格、包裝、規格等資訊如有調整,恕不另行通知。我們盡量做到及時更新產品資訊,但請以收到實物為準。使用產品前,請始終閱讀產品隨附的標籤、警告及說明。
查看詳情 {{ itemAct.title || '' }}*免責聲明:本頁面所展示的營養成分資訊來自商品包裝,僅供參考。由於包裝版本、語言或拍攝方式的差異,內容可能存在偏差或顯示不完整,請以實際收到的商品包裝為準。若對成分、過敏原或適用族群有疑問,建議於使用前仔細閱讀包裝說明,或聯繫客服取得協助。
超值套裝
相似商品
相關搜索
{{ item.userActionNumberDesc }}
掃碼分享
iOS 8 Swift编程指南
{{ itemCurrency }}{{ item.valid_price }}
{{ itemCurrency }}{{ priceFormat(item.valid_price / item.bundle_specification) }}/{{ item.unit }}
{{ itemDiscount }}
{{ itemCurrency }}{{ item.valid_price }}
{{ itemCurrency }}{{ priceFormat(item.valid_price / item.bundle_specification) }}/{{ item.unit }}
{{ itemCurrency }}{{ item.invalid_price }}
{{ itemDiscount }}
{{ itemCurrency }}{{ item.valid_price }}

權益價:
{{ itemCurrency }}{{ priceFormat(item.member_price) }}
立享權益
了解更多
後結束促銷
後開始秒殺
後結束秒殺
{{ getSeckillDesc(item.seckill_data) }}
{{ __("Pay with Gift Card to get sale price: :itemCurrency:price", {'itemCurrency': itemCurrency, 'price': (item.giftcard_price ? priceFormat(item.giftcard_price) : '0.00')}) }}
({{ itemCurrency }}{{ priceFormat(item.giftcard_price / item.bundle_specification) }}/{{ item.unit }})
詳情
{{ $isZh ? coupon.coupon_name_sub : coupon.coupon_ename_sub | formatCurrency }}
已下架
我們不知道該商品何時或是否會重新有庫存。
當前地址無法配送
已售完
{{ quantity }}
{{ instockMsg }}
{{ limitText }}
{{ buttonTypePin == 3 ? __("Scan to view more PinGo") : __("Scan to start") }}
商品有效期
搭配購買
合計
${{ priceFormat(totalPrice) }}
已加入購物車
優惠券
分享給好友
留言
你的好友在亞米網上發現一個好物,推薦你來看看。 亞米網是一站式亞洲商品購物網站,這裡有最全最好的亞洲食品,美妝保養,電器百貨,給生活在北美的我們帶來了極大的便利。全美滿$49免運費,還有更多優惠邀請你一起分享。
亞米禮卡專享價
使用禮卡支付即可獲得禮卡專享價
規則說明
禮卡專享價是部分商品擁有的特殊優惠價格;
購買禮卡專享價商品時,若在結算時使用電子禮卡抵扣支付,且禮卡餘額足夠支付訂單中所有禮卡專享價商品的專享價總和,則可以啟用禮卡專享價;
不使用禮卡支付,或禮卡餘額不滿足上一條所述要求時,將無法啟用禮卡專享價,按照普通售價計算,但您仍然可以購買這些商品;
在購買禮卡專享價商品時,若餘額不足,可以在購物車或結算頁中點擊“充值”按鈕對禮卡進行購買和充值;
商品若擁有禮卡專享價,會顯示“專享”的特殊價格標記;
如有疑問,請隨時聯繫客服;
禮卡專享價相關規則最終解釋權歸亞米所有。
由 亞米 銷售

服務保障
配送資訊
-
美國
標準配送 $5.99(不含阿拉斯加,夏威夷),最終價滿$49免運費
本地配送$5.99(加州,紐約州,新澤西,麻省和賓夕法尼亞,以上州部分地區);最終價滿$49免運費
兩日達(含阿拉斯加夏威夷)運費19.99美元起
退換政策
亞米網希望為我們的客戶提供最優秀的售後服務,讓所有人都能放心在亞米購物。亞米自營商品在滿足退換貨條件的情況下,可在收到包裹的30天之內退換商品(食品因商品質量問題7天內可退換;為了確保每位客戶都能獲得安全和高質量的商品,對於美妝類產品,一經開封或使用即不提供退款或退貨服務,質量問題除外;其他特殊商品需聯繫客服諮詢)。
感謝您的理解和支持。
由 亞米 銷售

亞米電子禮品卡使用規則
若購買時選擇自動儲值,訂單完成後禮品卡將自動儲值至您的帳戶;
若購買時選擇發送郵件,訂單完成後系統將自動發送卡號和密碼到您填寫的郵箱;
寄送郵件時,任何使用者均可使用郵件中的卡號密碼進行禮卡儲值,請妥善保管郵件資訊。
如接收郵件遇到問題,請聯絡客服處理;
發送郵件時,若禮卡沒有被兌換,可以補發郵件。若已經被其他用戶兌換,無法補償;
亞米網電子禮卡可用於購買自營或第三方商品;
亞米網電子禮卡沒有有效期限限制,長期有效;
亞米網電子禮卡的金額,可分多次使用;
亞米網電子禮卡業務規則,最終解釋權歸亞米網所有。
退換政策
已消費的電子禮卡不支持退款。
由 JD@CHINA 銷售
亞米發貨
服務保障
配送資訊
-
美國
標準配送 $5.99(不含阿拉斯加,夏威夷),最終價滿$49免運費
本地配送$5.99(加州,紐約州,新澤西,麻省和賓夕法尼亞,以上州部分地區);最終價滿$49免運費
兩日達(含阿拉斯加夏威夷)運費19.99美元起
退換政策
提供30天內退還保障。產品需全新未使用原包裝內,並附有購買憑證。產品品質問題、或錯發漏發等,由商家造成的失誤,將進行補發,或退款處理。其它原因需退貨費用由客戶自行承擔。
由 JD@CHINA 銷售
Yami-China FC
服務保障
亞米-中國集運倉
由亞米從中國精選並集合各大優秀店舖的商品至亞米中國整合中心,合併包裹後將一次合包跨國郵寄至您的地址。跨店包郵門檻低至$69。您將在多商家集合提供的廣泛選購商品中選購商品,輕鬆享有跨店鋪包郵後的低郵資。
退換政策
提供30天內退換保障。產品需在全新未使用的原包裝內,並附有購買憑證。產品品質問題、錯發、或漏發等商家造成的失誤,將進行退款處理。其它原因造成的退換貨郵費客戶將需要自行承擔。由於所有商品均長途跋涉,偶有簡易外包壓磨等但不涉及內部品質問題者,不予退換。
配送資訊
亞米中國集運 Consolidated Shipping 運費$9.99(訂單滿$69 包郵)
下單後2個工作天中國商家出貨,所有包裹抵達亞米中國整合中心(除特別情況及中國境內個別法定假日外)會合併包裹後透過UPS發往美國。 UPS從中國出貨後到美國境內的平均時間為10個工作天左右,可隨時根據直發單號追蹤查詢。受疫情影響,目前物流可能延遲5天左右。包裹需要客人簽收。如未簽收,客人須承擔包裹遺失風險。
由 JD@CHINA 銷售

服務保障
滿69免運費
正品保證
配送資訊
Yami Consolidated Shipping 運費$9.99(訂單滿$69包郵)
Seller will ship the orders within 1-2 business days. The logistics time limit is expected to be 7-15 working days. In case of customs clearance, the delivery time will be extended by 3-7 days. The final receipt date is subject to the information of the postal company.
積分規則
不參加任何折扣活動以及亞米會員積分制度。
退換政策
提供30天內退還保障。產品需全新未使用原包裝內,並附有購買憑證。產品品質問題、或錯發漏發等,由商家造成的失誤,將進行補發,或退款處理。其它原因需退貨費用由客戶自行承擔。
贈品
為您推薦
-60%
然利
27種選擇
然利 手工金山角蛋糕 營養早餐麵包 大麥若葉味 95g *5【5份超值裝】【產品包裝袋保質期讀法:月/日/年】
5.0
(1)
歷史瀏覽
-71%
ITO
4種選擇
日本ITO艾特柔 一次性潔面棉柔巾 日本美容院專用柔膚洗臉巾 250g*3 加厚加大升級 乾濕兩用 【全美超低價】新包裝隨機發貨
5.0
(460)
$3.16/件 · 3件
Low Price
野村
6種選擇
【網紅爆品】日本NOMURA野村 天日鹽煎豆小圓餅 薄脆餅乾 130g 各大網紅推薦 煲劇零食必備
4.8
(897)
看了又看
訂閱成功!
您的郵箱將很快會收到一封郵件
您的郵箱 :

下載亞米應用
意見反饋
分享您的感受,幫助更多用戶做出選擇。
撰寫評論