当前位置:主页 > 计算机电子书 > 程序设计 > swift下载
从零开始学swift

从零开始学swift PDF 第二版

  • 更新:2020-07-10
  • 大小:19.5 MB
  • 类别:swift
  • 作者:关东升
  • 出版:人民邮电出版社
  • 格式:PDF

  • 资源介绍
  • 学习心得
  • 相关内容

从零开始学swift是由关东升编写,作者是一个在IT领域爬滚打20年的程序员、培训师。本书是初学者学习swift必备入门书籍。该书基于Swift3.x,通过大量案例全面介绍苹果平台的应用开发。Swift3.x的语法有了重大变化,更加的独立有Objective-C语言,从零开始学swift(第二版)针对Swift3.x进行了全面的升级,全面涵盖了Swift3.x基础语法、面向协议编程、Swift编码规范、Swift混合编程(Swift与Objective-C/C++)、Spritekit游戏引擎等内容。从零开始学swift全书共分5部分,第一部分介绍了Swift的一些基础知识,第二部分介绍了基于Swift语言的中高级内容,第三部分主要介绍了Swift与Objective-C/C/C++的混合编程等相关问题,第四部分介绍了基于Swift语言的2D游戏引擎技术,第五部分详细介绍了一个游戏App的开发过程,系统而全面,有需要的朋友可以下载阅读。

《从零开始学swift》是基于Swift3.x全面更新,涵盖了面向协议编程、Swift编码规范、Swift混合编程(Swift与Objective-C/C++)、Spritekit等,本书线路图是,第一部分Swift语法,第二部分进阶(Swift内存管理、错误处理、Foundation框架),第三部分混合编程(Swift与Objective-C混合编程、Swift与C++混合编程),第四部分游戏(Spritekit游戏引),第五部分项目实战(游戏App实战—迷失航线)

目录

  • 第1章 准备起航
  • 1.1 本书约定
  • 1.1.1 示例代码约定
  • 1.1.2 图示约定
  • 1.1.3 函数和方法签名约定
  • 1.1.4 承接上一行代码约定
  • 1.1.5 代码行号约定
  • 1.2 Swift开发工具
  • 1.2.1 Xcode开发工具
  • 1.2.2 AppCode开发工具
  • 1.3 本章小结
  • 1.4 同步练习
  • 第2章 第一个SWIFT程序
  • 2.1 使用REPL
  • 2.1.1 启动Swift REPL
  • 2.1.2 使用Swift REPL
  • 2.2 使用Playground
  • 2.2.1 编程利器Playground
  • 2.2.2 编写HelloWorld程序
  • 2.3 通过Xcode创建macOS工程
  • 2.3.1 创建macOS工程
  • 2.3.2 编译和运行
  • 2.4 使用swiftc命令
  • 2.4.1 编译
  • 2.4.2 运行
  • 2.5 代码解释
  • 2.6 本章小结
  • 2.10 同步练习
  • 第3章 SWIFT语法基础
  • 3.1 标识符和关键字
  • 3.1.1 标识符
  • 3.1.2 关键字
  • 3.2 常量和变量
  • 3.2.1 常量
  • 3.2.2 变量
  • 3.2.3 使用var还是let
  • 3.3 注释
  • 3.4 表达式
  • 3.5 本章小结
  • 3.6 同步练习
  • 第4章 运算符
  • 4.1 算术运算符
  • 4.1.1 一元运算符
  • 4.1.2 二元运算符
  • 4.1.3 算术赋值运算符
  • 4.2 关系运算符
  • 4.3 逻辑运算符
  • 4.4 位运算符
  • 4.5 其他运算符
  • 4.6 本章小结
  • 4.7 同步练习
  • 第5章 SWIFT原生数据类型
  • 5.1 Swift数据类型
  • 5.2 整型
  • 5.3 浮点型
  • 5.4 数字表示方式
  • 5.4.1 进制数字表示
  • 5.4.2 指数表示
  • 5.4.3 其他表示
  • 5.5 数字类型之间的转换
  • 5.5.1 整型之间的转换
  • 5.5.2 整型与浮点型之间的转换
  • 5.6 布尔型
  • 5.7 元组类型
  • 5.8 可选类型
  • 5.8.1 可选类型概念
  • 5.8.2 可选类型值拆包
  • 5.8.3 可选绑定
  • 5.9 本章小结
  • 5.10 同步练习
  • 第6章 SWIFT原生字符串
  • 6.1 字符
  • 6.1.1 Unicode编码
  • 6.1.2 转义符
  • 6.2 创建字符串
  • 6.3 可变字符串
  • 6.3.1 字符串拼接
  • 6.3.2 字符串插入、删除和替换
  • 6.4 字符串比较
  • 6.4.1 大小和相等比较
  • 6.4.2 前缀和后缀比较
  • 6.5 本章小结
  • 6.6 同步练习
  • 第7章 控制语句
  • 7.1 分支语句
  • 7.1.1 if语句
  • 7.1.2 switch语句
  • 7.1.3 guard语句
  • 7.2 循环语句
  • 7.2.1 while语句
  • 7.2.2 repeat-while语句
  • 7.2.3 for语句
  • 7.3 跳转语句
  • 7.3.1 break语句
  • 7.3.2 continue语句
  • 7.3.3 fallthrough语句
  • 7.4 范围与区间运算符
  • 7.4.1 switch中使用区间运算符
  • 7.4.2 for中使用区间运算符
  • 7.5 值绑定
  • 7.5.1 if中的值绑定
  • 7.5.2 guard中的值绑定
  • 7.5.3 switch中的值绑定
  • 7.6 where语句
  • 7.6.1 switch中使用where语句
  • 7.6.2 for中使用where语句
  • 7.7 本章小结
  • 7.8 同步练习
  • 第8章 SWIFT原生集合类型
  • 8.1 Swift中的数组集合
  • 8.1.1 数组声明和初始化
  • 8.1.2 可变数组
  • 8.1.3 数组遍历
  • 8.2 Swift中的字典集合
  • 8.2.1 字典声明与初始化
  • 8.2.2 可变字典
  • 8.2.3 字典遍历
  • 8.3 Swift中的Set集合
  • 8.3.1 Set声明和初始化
  • 8.3.2 可变Set集合
  • 8.3.3 Set集合遍历
  • 8.3.4 Set集合运算
  • 8.4 本章小结
  • 8.5 同步练习
  • 第9章 函数
  • 9.1 定义函数
  • 9.2 函数参数
  • 9.2.1 使用参数标签
  • 9.2.2 省略参数标签
  • 9.2.3 参数默认值
  • 9.2.4 可变参数
  • 9.2.5 值类型参数的引用传递
  • 9.3 函数返回值
  • 9.3.1 无返回值函数
  • 9.3.2 多返回值函数
  • 9.4 函数类型
  • 9.4.1 作为函数返回类型使用
  • 9.4.2 作为参数类型使用
  • 9.5 嵌套函数
  • 9.6 本章小结
  • 9.7 同步练习
  • 第10章 闭包
  • 10.1 回顾嵌套函数
  • 10.2 闭包的概念
  • 10.3 使用闭包表达式
  • 10.3.1 类型推断简化
  • 10.3.2 隐藏return关键字
  • 10.3.3 省略参数名
  • 10.3.4 使用闭包返回值
  • 10.4 使用尾随闭包
  • 10.5 捕获上下文中的变量和常量
  • 10.6 本章小结
  • 10.7 同步练习
  • 第11章 SWIFT语言中的面向对象特性
  • 11.1 面向对象概念和基本特征
  • 11.2 Swift中的面向对象类型
  • 11.3 枚举
  • 11.3.1 成员值
  • 11.3.2 原始值
  • 11.3.3 相关值
  • 11.4 结构体与类
  • 11.4.1 类和结构体定义
  • 11.4.2 再谈值类型和引用类型
  • 11.4.3 引用类型的比较
  • 11.4.4 运算符重载
  • 11.5 类型嵌套
  • 11.6 可选链
  • 11.6.1 可选链的概念
  • 11.6.2 使用问号( )和感叹号(!)
  • 11.7 访问限定
  • 11.7.1 访问范围
  • 11.7.2 访问级别
  • 11.7.3 使用访问级别最佳实践
  • 11.8 选择类还是结构体最佳实践
  • 11.8.1 类和结构体的异同
  • 11.8.2 选择的原则
  • 11.9 本章小结
  • 11.10 同步练习
  • 第12章 属性与下标
  • 12.1 存储属性
  • 12.1.1 存储属性概念
  • 12.1.2 延迟存储属性
  • 12.2 计算属性
  • 12.2.1 计算属性的概念
  • 12.2.2 只读计算属性
  • 12.2.3 结构体和枚举中的计算属性
  • 12.3 属性观察者
  • 12.4 静态属性
  • 12.4.1 结构体静态属性
  • 12.4.2 枚举静态属性
  • 12.4.3 类静态属性
  • 12.5 使用下标
  • 12.5.1 下标概念
  • 12.5.2 示例:二维数组
  • 12.6 本章小结
  • 12.7 同步练习
  • 第13章 方法
  • 13.1 实例方法
  • 13.2 可变方法
  • 13.3 静态方法
  • 13.3.1 结构体静态方法
  • 13.3.2 枚举静态方法
  • 13.3.3 类静态方法
  • 13.4 本章小结
  • 13.5 同步练习
  • 第14章 构造与析构
  • 14.1 构造函数
  • 14.1.1 默认构造函数
  • 14.1.2 构造函数与存储属性初始化
  • 14.1.3 使用参数标签
  • 14.2 构造函数重载
  • 14.2.1 构造函数重载概念
  • 14.2.2 结构体构造函数代理
  • 14.2.3 类构造函数横向代理
  • 14.3 析构函数
  • 14.4 本章小结
  • 14.5 同步练习
  • 第15章 类继承
  • 15.1 从一个示例开始
  • 15.2 构造函数继承
  • 15.2.1 构造函数调用规则
  • 15.2.2 构造过程安全检查
  • 15.2.3 构造函数继承
  • 15.3 重写
  • 15.3.1 重写实例属性
  • 15.3.2 重写静态属性
  • 15.3.3 重写实例方法
  • 15.3.4 重写静态方法
  • 15.3.5 下标重写
  • 15.3.6 使用final关键字
  • 15.4 类型检查与转换
  • 15.4.1 使用is进行类型检查
  • 15.4.2 使用as、as!和as 进行类型转换
  • 15.4.3 使用AnyObject和Any类型
  • 15.5 本章小结
  • 15.6 同步练习
  • 第16章 扩展
  • 16.1 “轻量级”继承机制
  • 16.2 声明扩展
  • 16.3 扩展计算属性
  • 16.4 扩展方法
  • 16.5 扩展构造函数
  • 16.5.1 值类型扩展构造函数
  • 16.5.2 引用类型扩展构造函数
  • 16.6 扩展下标
  • 16.7 本章小结
  • 16.8 同步练习
  • 第17章 协议
  • 17.1 协议概念
  • 17.2 协议定义和遵从
  • 17.3 协议方法
  • 17.3.1 协议实例方法
  • 17.3.2 协议静态方法
  • 17.3.3 协议可变方法
  • 17.4 协议属性
  • 17.4.1 协议实例属性
  • 17.4.2 协议静态属性
  • 17.5 面向协议编程
  • 17.5.1 协议类型
  • 17.5.2 协议的继承
  • 17.5.3 协议扩展
  • 17.5.4 协议的合成
  • 17.5.5 扩展中遵从协议
  • 17.6 面向协议编程示例:表视图中使用扩展协议
  • 17.7 本章小结
  • 17.8 同步练习
  • 第18章 泛型
  • 18.1 一个问题的思考
  • 18.2 泛型函数
  • 18.2.1 使用泛型函数
  • 18.2.2 多类型参数
  • 18.3 泛型类型
  • 18.4 泛型扩展
  • 18.5 本章小结
  • 18.6 同步练习
  • 第19章 SWIFT编码规范
  • 19.1 命名规范
  • 19.2 注释规范
  • 19.2.1 文件注释
  • 19.2.2 文档注释
  • 19.2.3 代码注释
  • 19.2.4 使用地标注释
  • 19.3 声明
  • 19.3.1 变量或常量声明
  • 19.3.2 属性声明
  • 19.4 代码排版
  • 19.4.1 空行
  • 19.4.2 空格
  • 19.4.3 断行
  • 19.4.4 缩进
  • 19.5 本章小结
  • 19.6 同步练习
  • 第20章 SWIFT内存管理
  • 20.1 Swift内存管理概述
  • 20.1.1 引用计数
  • 20.1.2 示例:Swift自动引用计数
  • 20.2 强引用循环
  • 20.3 打破强引用循环
  • 20.3.1 弱引用
  • 20.3.2 无主引用
  • 20.4 闭包中的强引用循环
  • 20.4.1 一个闭包中的强引用循环示例
  • 20.4.2 解决闭包强引用循环
  • 20.5 本章小结
  • 20.6 同步练习
  • 第21章 错误处理
  • 21.1 Cocoa错误处理模式
  • 21.2 do-try-catch错误处理模式
  • 21.2.1 捕获错误
  • 21.2.2 错误类型
  • 21.2.3 声明抛出错误
  • 21.2.4 在函数或方法中抛出错误
  • 21.2.5 try 和try!的使用区别
  • 21.3 案例:MyNotes应用数据持久层实现
  • 21.3.1 MyNotes应用介绍
  • 21.3.2 MyNotes应用数据持久层设计
  • 21.3.3 实现Note实体类
  • 21.3.4 NoteDAO代码实现
  • 21.3.5 使用defer语句释放资源
  • 21.3.6 测试示例
  • 21.4 本章小结
  • 21.5 同步练习
  • 第22章 FOUNDATION框架
  • 22.1 数字类NSNumber
  • 22.1.1 获得NSNumber对象
  • 22.1.2 比较NSNumber对象
  • 22.1.3 数字格式化
  • 22.1.4 NSNumber与Swift原生数字类型之间的桥接
  • 22.2 字符串类
  • 22.2.1 NSString类
  • 22.2.2 NSMutableString类
  • 22.2.3 NSString与String之间的桥接
  • 22.3 数组类
  • 22.3.1 NSArray类
  • 22.3.2 NSMutableArray类
  • 22.3.3 NSArray与Swift原生数组之间的桥接
  • 22.4 字典类
  • 22.4.1 NSDictionary类
  • 22.4.2 NSMutableDictionary类
  • 22.4.3 NSDictionary与Swift原生字典之间的桥接
  • 22.5 NSSet集合类
  • 22.5.1 NSSet类
  • 22.5.2 NSMutableSet类
  • 22.5.3 NSSet与Swift原生Set之间的桥接
  • 22.6 文件管理
  • 22.6.1 访问目录
  • 22.6.2 目录操作
  • 22.6.3 文件操作
  • 22.7 字节缓存
  • 22.7.1 访问字节缓存
  • 22.7.2 示例:Base64解码与编码
  • 22.8 日期与时间
  • 22.8.1 NSDate和Date
  • 22.8.2 日期时间格式化
  • 22.8.3 NSCalendar、Calendar、NSDateComponents和DateComponents
  • 22.8.4 示例:时区转换
  • 22.9 使用谓词NSPredicate过滤数据
  • 22.9.1 一个过滤员工花名册的示例
  • 22.9.2 使用谓词NSPredicate
  • 22.9.3 NSPrdicate与集合
  • 22.9.4 格式说明符
  • 22.9.5 运算符
  • 22.10 使用正则表达式
  • 22.10.1 在NSPredicate中使用正则表达式
  • 22.10.2 使用NSRegularExpression
  • 22.10.3 示例:日期格式转换
  • 22.11 本章小结
  • 第23章 SWIFT与OBJECTIVE-C混合编程
  • 23.1 选择语言
  • 23.2 文件扩展名
  • 23.3 Swift与Objective-C API映射
  • 23.3.1 构造函数映射
  • 23.3.2 方法名映射
  • 23.4 同一应用目标中的混合编程
  • 23.4.1 什么是目标
  • 23.4.2 Swift调用Objective-C
  • 23.4.3 Objective-C调用Swift
  • 23.5 同一框架目标中的混合编程
  • 23.5.1 链接库和框架
  • 23.5.2 Swift调用Objective-C
  • 23.5.3 测试框架目标
  • 23.5.4 Objective-C调用Swift
  • 23.6 本章小结
  • 第24章 SWIFT与C/C++混合编程
  • 24.1 数据类型映射
  • 24.1.1 C语言基本数据类型
  • 24.1.2 C语言指针类型
  • 24.2 应用目标中的混合编程
  • 24.2.1 Swift调用C API
  • 24.2.2 Swift调用C++ API
  • 24.3 框架目标中的混合编程
  • 24.3.1 同一框架目标中Swift调用C或C++ API
  • 24.3.2 Swift调用第三方库中的C或C++ API
  • 24.4 案例:用SQLite嵌入式数据库实现MyNotes数据持久层
  • 24.4.1 Note实体类代码
  • 24.4.2 创建表
  • 24.4.3 插入数据
  • 24.4.4 查询数据
  • 24.4.5 应用沙箱目录
  • 24.4.6 表示层开发
  • 24.5 本章小结
  • 第25章 SPRITEKIT游戏引擎
  • 25.1 移动平台游戏引擎介绍
  • 25.2 第一个SpriteKit游戏
  • 25.2.1 创建工程
  • 25.2.2 工程剖析
  • 25.3 一切都是节点
  • 25.3.1 节点“家族”
  • 25.3.2 节点树
  • 25.3.3 节点中重要的方法
  • 25.3.4 节点中重要的属性
  • 25.4 精灵
  • 25.4.1 精灵类SKSpriteNode
  • 25.4.2 案例:沙漠英雄场景
  • 25.4.3 使用纹理图集性能优化
  • 25.5 场景切换
  • 25.5.1 场景切换方法
  • 25.5.2 场景过渡动画
  • 25.5.3 案例:沙漠英雄场景切换
  • 25.6 动作
  • 25.6.1 常用动作
  • 25.6.2 组合动作
  • 25.6.3 案例:帧动画实现
  • 25.7 粒子系统
  • 25.7.1 粒子系统属性
  • 25.7.2 内置粒子系统模板
  • 25.8 游戏音乐与音效
  • 25.8.1 音频文件介绍
  • 25.8.2 macOS和iOS平台音频优化
  • 25.8.3 背景音乐
  • 25.8.4 3D音效
  • 25.9 物理引擎
  • 25.9.1 物理引擎核心概念
  • 25.9.2 物理引擎中的物体
  • 25.9.3 接触与碰撞
  • 25.9.4 案例:食品的接触与碰撞
  • 25.10 本章小结
  • 第26章 游戏APP实战——迷失航线
  • 26.1 《迷失航线》游戏分析与设计
  • 26.1.1 《迷失航线》故事背景
  • 26.1.2 需求分析
  • 26.1.3 原型设计
  • 26.1.4 游戏脚本
  • 26.2 任务1:游戏工程的创建与初始化
  • 26.2.1 迭代1.1:创建工程
  • 26.2.2 迭代1.2:自定义类型维护
  • 26.2.3 迭代1.3:添加资源文件
  • 26.2.4 迭代1.4:添加粒子系统
  • 26.3 任务2:创建Loading场景
  • 26.3.1 迭代2.1:设计场景
  • 26.3.2 迭代2.2:Loading动画
  • 26.3.3 迭代2.3:预处理加载纹理
  • 26.4 任务3:创建Home场景
  • 26.4.1 迭代3.1:设计场景
  • 26.4.2 迭代3.2:实现代码
  • 26.5 任务4:创建设置场景
  • 26.5.1 迭代4.1:设计场景
  • 26.5.2 迭代4.2:实现代码
  • 26.6 任务5:创建帮助场景
  • 26.6.1 迭代5.1:设计场景
  • 26.6.2 迭代5.2:实现代码
  • 26.7 任务6:实现游戏场景
  • 26.7.1 迭代6.1:设计场景
  • 26.7.2 迭代6.2:创建敌人精灵
  • 26.7.3 迭代6.3:创建玩家飞机精灵
  • 26.7.4 迭代6.4:创建子弹精灵
  • 26.7.5 迭代6.5:初始化游戏场景
  • 26.7.6 迭代6.6:玩家移动飞机
  • 26.7.7 迭代6.7:游戏循环与任务调度
  • 26.7.8 迭代6.8:游戏场景菜单实现
  • 26.7.9 迭代6.9:玩家飞机发射子弹
  • 26.7.10 迭代6.10:子弹与敌人的碰撞检测
  • 26.7.11 迭代6.11:玩家飞机与敌人的碰撞检测
  • 26.8 任务7:游戏结束场景
  • 26.8.1 迭代7.1:设计场景
  • 26.8.2 迭代7.2:实现代码
  • 26.9 还有“最后一公里”
  • 26.9.1 添加图标
  • 26.9.2 调整Identity和Deployment Info属性
  • 26.9.3 调整程序代码
  • 26.10 本章小结

资源获取

资源地址1:https://pan.baidu.com/s/15JL4lWbS3hyQAbmOrHuOVQ

相关资源

网友留言