作品简介

Swift是苹果公司在WWDC2014大会上发布的一门全新的编程语言,用于编写OS X和iOS应用程序。《Swift开发实战》共分24章,循序渐进地讲解了Swift语言的基本知识及实战技术。《Swift开发实战》从Swift语言基础讲起,依次讲解了Swift的语法、运算符、字符串和字符、表达式、集合类型、语句和流程控制、函数、闭包、枚举、类、构造函数和析构函数、属性、方法、下标脚本、自动引用计数、泛型、可选链、类型检查和嵌套类型、混编开发、扩展、协议、Sprite Kit游戏开发等知识。《Swift开发实战》几乎涵盖了Swift语言的全部内容,讲解通俗易懂,特别适合初学者学习。

《Swift开发实战》适合Swift初学者、iOS爱好者、iPhone应用开发人员、iPad应用开发人员、iOS应用开发人员学习,也可以作为相关培训学校和大专院校相关专业的教学用书。

朱元波,计算机硕士,通讯工程硕士,精通iOS开发,Objective—C,C语言,C++。在苹果APP Store发布多款作品,现在就职于联通iPhone研发定制中心。

作品目录

  • Swift 开发实战
  • 前言
  • 第1章 工欲善其事,必先利其器——Swift语言基础
  • 1.1 Swift概述
  • 1.1.1 Swift的创造者
  • 1.1.2 Swift的优势
  • 1.2 搭建开发环境
  • 1.2.1 Xcode 6介绍
  • 1.2.2 下载并安装Xcode 6
  • 1.3 使用Xcode开发环境
  • 1.3.1 改变公司名称
  • 1.3.2 通过搜索框缩小文件范围
  • 1.3.3 格式化代码
  • 1.3.4 代码缩进和自动完成
  • 1.3.5 文件内查找和替换
  • 1.3.6 快速定位到代码行
  • 1.3.7 快速打开文件
  • 1.3.8 使用书签
  • 1.3.9 自定义导航条
  • 1.3.10 使用Xcode帮助
  • 1.3.11 调试代码
  • 1.4 启动iOS 8模拟器
  • 第2章 千里之行,始于足下——Swift语言基础
  • 2.1 第一段Swift程序
  • 2.2 简单值
  • 2.3 流程控制
  • 2.4 函数和闭包
  • 2.5 对象和类
  • 2.6 枚举和结构体
  • 2.7 协议和扩展
  • 2.8 泛型
  • 第3章 新语言,新特性——Swift的基础语法
  • 3.1 分号
  • 3.2 空白
  • 3.3 标识符和关键字
  • 3.3.1 标识符
  • 3.3.2 关键字
  • 3.4 常量和变量
  • 3.4.1 声明常量和变量
  • 3.4.2 声明变量
  • 3.4.3 输出常量和变量
  • 3.4.4 标注类型
  • 3.4.5 常量和变量的命名规则
  • 3.5 注释
  • 3.5.1 注释的规则
  • 3.5.2 使用注释的注意事项
  • 3.6 数据类型
  • 3.6.1 数据类型的分类
  • 3.6.2 类型安全和类型推断
  • 3.6.3 类型注解
  • 3.6.4 类型标识符
  • 3.6.5 元组类型
  • 3.6.6 函数类型
  • 3.6.7 数组类型
  • 3.6.8 可选类型
  • 3.6.9 隐式解析可选类型
  • 3.6.10 协议合成类型
  • 3.6.11 元类型
  • 3.6.12 类型继承子句
  • 3.6.13 类型推断
  • 3.7 最基本的数值类型
  • 3.7.1 整数
  • 3.7.2 浮点数
  • 3.8 字面量
  • 3.8.1 数值型字面量
  • 3.8.2 整型字面量
  • 3.8.3 浮点型字面量
  • 3.8.4 文本型字面量
  • 3.9 数值型类型转换
  • 3.9.1 整数转换
  • 3.9.2 整数和浮点数转换
  • 3.10 类型别名
  • 3.11 布尔值
  • 3.12 元组
  • 3.13 可选类型
  • 3.13.1 if 语句以及强制解析
  • 3.13.2 可选绑定
  • 3.13.3 nil
  • 3.13.4 隐式解析可选类型
  • 3.14 断言
  • 3.14.1 使用断言进行调试
  • 3.14.2 何时使用断言
  • 第4章 运算符
  • 4.1 运算符概述
  • 4.2 赋值运算符
  • 4.2.1 基本赋值运算符
  • 4.2.2 复合赋值运算符
  • 4.3 算术运算符
  • 4.3.1 一元运算符
  • 4.3.2 二元运算符
  • 4.3.3 求余运算
  • 4.3.4 浮点数求余计算
  • 4.4 比较运算符(关系运算符)
  • 4.5 三元条件运算
  • 4.6 区间运算符
  • 4.6.1 闭区间运算符
  • 4.6.2 半闭区间运算符
  • 4.7 逻辑运算
  • 4.7.1 逻辑非
  • 4.7.2 逻辑与
  • 4.7.3 逻辑或
  • 4.7.4 组合逻辑
  • 4.7.5 使用括号设置运算优先级
  • 4.8 位运算符
  • 4.8.1 按位取反运算符
  • 4.8.2 按位与运算符
  • 4.8.3 按位或运算符
  • 4.8.4 按位异或运算符
  • 4.8.5 按位左移/右移运算符
  • 4.9 溢出运算符
  • 4.10 运算符函数
  • 4.10.1 前置和后置运算符
  • 4.10.2 组合赋值运算符
  • 4.10.3 比较运算符
  • 4.11 自定义运算符
  • 4.12 运算符的优先级和结合性
  • 第5章 字符串和字符
  • 5.1 字符和字符串基础
  • 5.2 字符串字面量
  • 5.3 初始化空字符串
  • 5.4 字符串可变性
  • 5.5 字符串是值类型
  • 5.6 字符串遍历
  • 5.7 计算字符数量
  • 5.8 连接字符串和字符
  • 5.9 字符串插值
  • 5.10 比较字符串
  • 5.10.1 字符串相等
  • 5.10.2 前缀/后缀相等
  • 5.10.3 大写和小写字符串
  • 5.11 国际标准Unicode
  • 5.11.1 Unicode术语
  • 5.11.2 字符串的 Unicode 表示
  • 5.11.3 UTF-8
  • 5.11.4 UTF-16
  • 5.11.5 Unicode 标量
  • 第6章 表达式
  • 6.1 前缀表达式
  • 6.2 二元表达式
  • 6.3 赋值表达式
  • 6.4 三元条件运算符
  • 6.5 类型转换运算符
  • 6.6 主表达式
  • 6.6.1 字符型表达式
  • 6.6.2 self表达式
  • 6.6.3 超类表达式
  • 6.6.4 闭包表达式
  • 6.6.5 隐式成员表达式
  • 6.6.6 圆括号表达式
  • 6.6.7 通配符表达式
  • 6.7 后缀表达式
  • 6.7.1 函数调用表达式
  • 6.7.2 初始化函数表达式
  • 6.7.3 显式成员表达式
  • 6.7.4 后缀self表达式
  • 6.7.5 动态表达式
  • 6.7.6 下标脚本表达式
  • 6.7.7 强制取值表达式
  • 6.7.8 可选链表达式
  • 第7章 集合类型
  • 7.1 数组
  • 7.1.1 定义数组
  • 7.1.2 数组构造语句
  • 7.1.3 访问和修改数组
  • 7.1.4 数组的遍历
  • 7.1.5 创建并且构造一个数组
  • 7.2 字典
  • 7.2.1 字典字面量
  • 7.2.2 读取和修改字典
  • 7.2.3 字典遍历
  • 7.2.4 创建一个空字典
  • 7.3 集合的可变性
  • 第8章 语句和流程控制
  • 8.1 Swift语句概述
  • 8.1.1 循环语句
  • 8.1.2 分支条件语句
  • 8.1.3 带标签的语句
  • 8.1.4 控制传递语句
  • 8.2 for循环
  • 8.2.1 for-in
  • 8.2.2 for条件递增
  • 8.3 while循环
  • 8.3.1 while
  • 8.3.2 do-while
  • 8.4 条件语句
  • 8.4.1 if语句
  • 8.4.2 switch
  • 8.4.3 不存在隐式的贯穿
  • 8.4.4 区间匹配
  • 8.4.5 元组
  • 8.4.6 值绑定
  • 8.4.7 where
  • 8.5 控制转移语句
  • 8.5.1 continue
  • 8.5.2 break
  • 8.5.3 贯穿(Fallthrough)
  • 8.5.4 带标签的语句(Labeled Statements)
  • 第9章 函数
  • 9.1 函数的分类
  • 9.1.1 从函数定义的角度划分
  • 9.1.2 从是否有返回值角度划分
  • 9.1.3 从是否有参数角度划分
  • 9.1.4 库函数
  • 9.2 函数的定义
  • 9.2.1 无参函数的定义
  • 9.2.2 有参函数的定义
  • 9.3 函数声明
  • 9.3.1 函数声明的格式
  • 9.3.2 声明中的参数名
  • 9.3.3 声明中的特殊类型参数
  • 9.4 函数调用
  • 9.4.1 调用函数的格式
  • 9.4.2 函数调用的方式
  • 9.5 函数参数
  • 9.5.1 多重输入参数
  • 9.5.2 无参函数
  • 9.5.3 无返回值函数
  • 9.6 返回值
  • 9.7 函数参数的名称
  • 9.7.1 外部参数名
  • 9.7.2 简写外部参数名
  • 9.7.3 默认参数值
  • 9.7.4 默认值参数的外部参数名
  • 9.7.5 可变参数
  • 9.7.6 常量参数和变量参数
  • 9.7.7 输入/输出参数
  • 9.8 函数类型
  • 9.8.1 使用函数类型
  • 9.8.2 函数类型作为参数类型
  • 9.8.3 函数类型作为返回类型
  • 9.9 嵌套函数
  • 9.10 函数和闭包
  • 9.11 内置库函数
  • 第10章 闭包
  • 10.1 闭包表达式
  • 10.1.1 sort 函数
  • 10.1.2 闭包表达式语法
  • 10.1.3 根据上下文推断类型
  • 10.1.4 单表达式闭包隐式返回
  • 10.1.5 参数名称的缩写
  • 10.1.6 运算符函数
  • 10.2 闭包的简写方式
  • 10.3 尾随闭包
  • 10.4 捕获值
  • 10.5 闭包是引用类型
  • 第11章 枚举
  • 11.1 枚举基础
  • 11.2 枚举语法
  • 11.3 匹配枚举值和switch语句
  • 11.4 相关值
  • 11.5 原始值
  • 第12章 类
  • 12.1 类和结构体基础
  • 12.1.1 定义类和结构体
  • 12.1.2 声明结构体字段
  • 12.2 类的成员
  • 12.2.1 最简单的数据成员
  • 12.2.2 最重要的函数成员
  • 12.3 结构体成员
  • 12.3.1 字段
  • 12.3.2 函数
  • 12.3.3 属性
  • 12.4 类和结构体实例
  • 12.5 类的继承
  • 12.5.1 类的层次结构
  • 12.5.2 继承概述
  • 12.5.3 定义子类
  • 12.5.4 重写
  • 12.5.5 继承规则
  • 12.6 属性访问
  • 12.7 结构体和枚举是值类型
  • 12.8 类是引用类型
  • 12.8.1 恒等运算符
  • 12.8.2 指针
  • 12.9 类和结构体的选择
  • 12.10 集合类型的赋值和复制行为
  • 12.10.1 字典类型的赋值和拷贝行为
  • 12.10.2 数组的赋值和复制行为
  • 12.10.3 确保数组的唯一性
  • 12.10.4 判定两个数组是否共用相同元素
  • 12.10.5 强制复制数组
  • 第13章 构造函数和析构函数
  • 13.1 构造函数概述
  • 13.1.1 结构体中的构造函数
  • 13.1.2 类中的构造函数
  • 13.2 构造过程详解
  • 13.2.1 为存储型属性赋初始值
  • 13.2.2 定制化构造过程
  • 13.2.3 默认构造器
  • 13.2.4 值类型的构造器代理
  • 13.2.5 类的继承和构造过程
  • 13.2.6 通过闭包和函数来设置属性的默认值
  • 13.3 析构函数
  • 13.3.1 析构过程原理
  • 13.3.2 析构函数操作
  • 13.4 综合演练
  • 第14章 属性
  • 14.1 属性的种类
  • 14.2 常用的声明属性
  • 14.3 类型属性
  • 14.4 存储属性
  • 14.4.1 常量和存储属性
  • 14.4.2 懒惰储存属性
  • 14.4.3 延迟存储属性
  • 14.4.4 存储属性和实例变量
  • 14.5 计算属性
  • 14.5.1 基本操作
  • 14.5.2 setter声明的简略写法
  • 14.5.3 便捷 setter 声明
  • 14.5.4 只读计算属性
  • 14.6 属性监视器
  • 14.7 全局变量和局部变量
  • 14.8 类型属性
  • 14.8.1 类型属性语法
  • 14.8.2 获取和设置类型属性的值
  • 第15章 方法
  • 15.1 实例方法
  • 15.1.1 方法的局部参数名称和外部参数名称
  • 15.1.2 self属性
  • 15.1.3 在实例方法中修改值类型
  • 15.1.4 在变异方法中给self赋值
  • 15.2 类型方法
  • 第16章 下标脚本
  • 16.1 下标脚本语法
  • 16.2 下标脚本用法
  • 16.3 下标脚本选项
  • 第17章 自动引用计数
  • 17.1 iOS ARC的背景
  • 17.2 Swift ARC的工作机制
  • 17.3 自动引用计数实践
  • 17.4 类实例之间的循环强引用
  • 17.5 解决实例之间的循环强引用
  • 17.5.1 弱引用
  • 17.5.2 无主引用
  • 17.5.3 无主引用以及隐式解析可选属性
  • 17.6 闭包引起的循环强引用
  • 17.7 解决闭包引起的循环强引用
  • 17.7.1 定义捕获列表
  • 17.7.2 弱引用和无主引用
  • 第18章 泛型
  • 18.1 泛型所解决的问题
  • 18.2 泛型函数
  • 18.3 类型参数
  • 18.4 命名类型参数
  • 18.5 泛型类型
  • 18.6 类型约束
  • 18.6.1 类型约束语法
  • 18.6.2 类型约束行为
  • 18.7 关联类型
  • 18.7.1 关联类型行为
  • 18.7.2 扩展一个存在的类型为一指定关联类型
  • 18.8 where 语句
  • 第19章 可选链
  • 19.1 可选链可替代强制解析
  • 19.2 为可选链定义模型类
  • 19.3 通过可选链调用属性
  • 19.4 通过可选链调用方法
  • 19.5 使用可选链调用子脚本
  • 19.6 连接多层链接
  • 19.7 链接可选返回值的方法
  • 第20章 类型检查和嵌套类型
  • 20.1 定义一个类层次作为例子
  • 20.2 检查类型(Checking Type)
  • 20.3 向下转型(Downcasting)
  • 20.4 Any和AnyObject的类型转换
  • 20.4.1 AnyObject类型
  • 20.4.2 Any类型
  • 20.5 嵌套类型
  • 20.5.1 嵌套类型实例
  • 20.5.2 嵌套类型的引用
  • 第21章 混编开发
  • 21.1 在同一个工程中使用Swift和Objective-C
  • 21.1.1 Mix and Match概述
  • 21.1.2 在同一个应用的target中导入
  • 21.1.3 在同一个框架的target中导入
  • 21.1.4 导入外部框架
  • 21.1.5 在Objective-C中使用Swift
  • 21.1.6 实战演练Swift 与Objective-C的相互调用
  • 21.2 Swift调用C函数
  • 21.2.1 调用简单的C函数
  • 21.2.2 增加一个C键盘输入函数
  • 21.3 Swift调用C函数的综合演练
  • 第22章 扩展
  • 22.1 扩展语法
  • 22.2 计算型属性
  • 22.3 构造器
  • 22.4 扩展方法
  • 22.5 下标
  • 22.6 嵌套类型
  • 22.7 扩展字符串截取方法
  • 22.7.1 演示扩展字符串的用法
  • 22.7.2 使用Swift String扩展截取字符串
  • 22.8 在iOS项目中使用扩展
  • 22.9 用Swift编写UITextField扩展
  • 第23章 协议
  • 23.1 协议的语法
  • 23.2 对属性的规定
  • 23.3 对方法的规定
  • 23.4 对突变方法的规定
  • 23.5 协议类型
  • 23.6 委托模式
  • 23.7 在扩展中添加协议成员
  • 23.8 通过扩展补充协议声明
  • 23.9 集合中的协议类型
  • 23.10 协议的继承
  • 23.11 协议合成
  • 23.12 检验协议的一致性
  • 23.13 对可选协议的规定
  • 第24章 Sprite Kit游戏开发
  • 24.1 Sprite Kit框架基础
  • 24.1.1 Sprite Kit的优点和缺点
  • 24.1.2 Sprite Kit、Cocos2D、Cocos2D-X和Unity的选择
  • 24.2 开发一个Flappy Bird游戏
  • 24.3 开发一个iPad飞行游戏(基于Swift)
  • 24.3.1 创建工程
  • 24.3.2 载入有云的天空的动画
  • 24.3.3 实现二维飞行界面
  • 24.3.4 生成发射子弹视图
  • 24.3.5 定义敌人类
  • 24.4 开发一个方块游戏
展开全部