关于本书的内容有任何问题,请联系 刘博
第 1章 编写第 一个Swift程序 1 1.1 初识Swift 1 1.1.1 Swift的发展 1 1.1.2 Swift的特点 1 1.1.3 Swift语言的转换 2 1.2 构建开发环境 2 1.2.1 申请苹果账号 3 1.2.2 安装Xcode 6 1.2.3 更新新组件和文档 9 1.3 编写第 一个程序 11 1.3.1 创建项目 11 1.3.2 Xcode界面介绍 13 1.3.3 编译和运行 14 1.3.4 编写代码 15 1.4 Swift代码分析 15 1.4.1 代码构成 15 1.4.2 标识符 16 1.4.3 关键字 16 1.4.4 注释 17 1.5 调试 18 1.6 使用帮助文档 19 1.7 上机实践 20 第 2章 Swift语言基础 21 2.1 常量变量 21 2.1.1 常量 21 2.1.2 变量 21 2.1.3 为声明的变量和常量指定数据 类型 22 2.2 简单数据类型 22 2.2.1 整数 22 2.2.2 整型 23 2.2.3 浮点类型 24 2.2.4 布尔类型 25 2.2.5 可选类型 25 2.3 字面值 26 2.3.1 整型字面值 26 2.3.2 浮点类型的字面值 26 2.3.3 布尔类型的字面值 28 2.4 数据类型——元组 28 2.5 类型别名 29 2.6 字符和字符串 29 2.6.1 字符类型与字面值 29 2.6.2 字符串类型与字面值 30 2.6.3 初始化空字符串 31 2.6.4 字符串连接 31 2.6.5 字符计数 32 2.6.6 判断字符串 32 2.6.7 大小写转换 34 2.6.8 插入和删除 35 2.7 编码格式Unicode 37 2.7.1 什么是Unicode 37 2.7.2 字符串的Unicode表示形式 38 2.8 综合案例 40 2.8.1 为圆周率3.14159265359指定数据 类型 40 2.8.2 组成字符串,并插入特殊符号 40 2.9 上机实践 41 第3章 语句和表达式 42 3.1 语句 42 3.2 运算符与表达式 42 3.2.1 常用术语——元 42 3.2.2 赋值运算符和表达式 43 3.2.3 算术运算符和表达式 43 3.2.4 求余运算符和表达式 46 3.2.5 自增自减运算符和表达式 47 3.2.6 一元负号运算符 49 3.2.7 一元正号运算符 50 3.2.8 位运算符 50 3.2.9 溢出运算符 55 3.2.10 比较运算符和表达式 57 3.2.11 三元条件运算符和表达式 58 3.2.12 逻辑运算符和表达式 58 3.2.13 范围运算符 61 3.2.14 复合赋值运算符和表达式 62 3.2.15 求字节运算符和表达式 63 3.2.16 强制解析 63 3.2.17 空合运算符 63 3.3 数值类型转换 64 3.3.1 整数的转换 64 3.2.2 整数和浮点数的转换 65 3.4 综合案例 66 3.4.1 水仙花数 66 3.4.2 将7489逆序输出 66 3.5 上机实践 67 第4章 集合类型 68 4.1 数组 68 4.1.1 数组字面量 68 4.1.2 数组的声明 68 4.1.3 数组的初始化 69 4.2 数组的操作 71 4.2.1 获取数组中元素个数 71 4.2.2 判断数组是否为空 71 4.2.3 在末尾添加一个元素 72 4.2.4 插入值 73 4.2.5 读取值 74 4.2.6 修改值 74 4.2.7 删除值 75 4.3 集合 76 4.3.1 集合的声明 76 4.3.2 集合的初始化 77 4.4 集合的操作 78 4.4.1 获取集合中元素个数 78 4.4.2 判断集合是否为空 78 4.4.3 判断集合中是否包含某一值 79 4.4.4 插入值 79 4.4.5 删除值 79 4.4.6 确定集合的顺序 81 4.5 集合的基本运算 81 4.5.1 a∩b 81 4.5.2 a∪b 82 4.5.3 a-b 83 4.5.4 a-b∪b-a 83 4.6 集合间关系 84 4.6.1 相等判断 84 4.6.2 子集的判断 85 4.6.3 父集合的判断 85 4.6.4 其他判断 86 4.7 字典 86 4.7.1 字典字面量 86 4.7.2 字典的声明 87 4.7.3 字典的初始化 87 4.8 字典的操作 88 4.8.1 获取字典中的元素个数 88 4.8.2 读取键的值 88 4.8.3 添加元素 89 4.8.4 修改键关联的值 89 4.8.5 删除值 90 4.9 综合案例 91 4.9.1 求3科成绩的平均值 91 4.9.2 获取奇数月 92 4.10 上机实践 94 第5章 程序控制结构 95 5.1 顺序结构 95 5.2 选择结构——if语句 95 5.2.1 if语句 96 5.2.2 if...else语句 96 5.2.3 if...else if语句 97 5.2.4 if语句的嵌套 98 5.3 选择结构——switch语句 99 5.3.1 switch语句基本形式 99 5.3.2 switch语句的使用规则 100 5.4 循环结构——for语句 103 5.4.1 for...in循环 103 5.4.2 for-condition-increment条件循环 108 5.5 循环结构——while语句 108 5.5.1 while循环 109 5.5.2 repeat while循环 110 5.6 跳转语句 110 5.6.1 continue语句 110 5.6.2 break语句 111 5.6.3 fallthrough 112 5.7 标签语句 112 5.7.1 标签语句的定义 113 5.7.2 标签语句的使用 113 5.8 综合案例 114 5.8.1 打印九九乘法表 114 5.8.2 使用if else比较3个数值大小 115 5.8.3 计算1~100的奇数和 116 5.9 上机实践 116 第6章 函数和闭包 117 6.1 函数介绍 117 6.1.1 函数的功能 117 6.1.2 函数的形式 118 6.2 使用无参函数 118 6.2.1 无参函数的声明定义 119 6.2.2 无参函数的调用 119 6.2.3 空函数 119 6.3 使用有参函数 120 6.3.1 有参函数的声明定义 120 6.3.2 有参函数的调用 120 6.3.3 参数的注意事项 121 6.4 函数参数的特殊情况 121 6.4.1 函数参数名 122 6.4.2 指定外部参数名 122 6.4.3 忽略外部参数名 122 6.4.4 为参数设置默认值 123 6.4.5 可变参数 123 6.4.6 常量参数和变量参数 124 6.4.7 输入-输出参数 124 6.5 函数的返回值 125 6.5.1 具有一个返回值的函数 125 6.5.2 具有多个返回值的函数 126 6.5.3 可选元组返回类型 127 6.5.4 无返回值 128 6.6 函数类型 128 6.6.1 使用函数类型 129 6.6.2 使用函数类型作为参数类型 129 6.6.3 使用函数类型作为返回值类型 130 6.7 标准函数 131 6.7.1 值函数abs() 131 6.7.2 **大值函数max()/**小值函数 min() 132 6.7.3 序列排序函数sortInPlace() 132 6.7.4 序列倒序函数reverse() 133 6.8 函数的嵌套 133 6.8.1 嵌套调用 134 6.8.2 递归调用 135 6.9 闭包 135 6.9.1 闭包表达式 136 6.9.2 Trailing闭包 138 6.9.3 捕获值 139 6.10 综合案例 140 6.10.1 打印金字塔 140 6.10.2 猴子吃桃 141 6.11 上机实践 142 第7章 类 143 7.1 类与对象 143 7.1.1 类的组成 143 7.1.2 创建类 143 7.1.3 实例化对象 144 7.2 属性 144 7.2.1 存储属性 144 7.2.2 计算属性 146 7.2.3 类型属性 148 7.2.4 属性监视器 150 7.3 方法 152 7.3.1 实例方法 152 7.3.2 类型方法 153 7.3.3 存储属性、局部变量和全局变量 的区别 155 7.3.4 局部变量和存储属性同名的解决 方法——self属性 156 7.4 下标脚本 157 7.4.1 定义下标脚本 157 7.4.2 调用下标脚本 157 7.4.3 使用下标脚本 158 7.5 类的嵌套 160 7.5.1 直接嵌套 160 7.5.2 多次嵌套 161 7.6 可选链接 162 7.6.1 使用可选链接调用代替强制解析 163 7.6.2 通过可选链接调用属性、下标 脚本、方法 163 7.6.3 连接多个链接 165 7.7 综合案例 166 7.7.1 收支情况 166 7.7.2 根据周长计算面积 167 7.8 上机实践 168 第8章 继承 170 8.1 为什么要使用继承 170 8.1.1 重用代码、简化代码 170 8.1.2 扩展功能 170 8.2 继承的实现 170 8.2.1 继承的定义 170 8.2.2 属性的继承 172 8.2.3 下标脚本的继承 173 8.2.4 方法的继承 174 8.3 继承的特点 174 8.3.1 多层继承 174 8.3.2 不可删除 175 8.4 重写 176 8.4.1 重写属性 176 8.4.2 重写下标脚本 178 8.4.3 重写方法 179 8.4.4 访问父类成员 180 8.4.5 阻止重写 182 8.5 类型转换 184 8.5.1 类型检查 184 8.5.2 向下转型 185 8.5.3 AnyObject和Any的类型转换 185 8.6 综合案例 187 8.7 上机实践 188 第9章 枚举和结构 189 9.1 枚举的构成 189 9.2 定义枚举 189 9.2.1 任意类型的枚举类型 189 9.2.2 指定数据类型的枚举类型 190 9.3 定义枚举的成员 190 9.3.1 定义任意类型的枚举成员 190 9.3.2 定义指定数据类型的枚举成员 191 9.3.3 定义枚举成员时的注意事项 192 9.4 实例化枚举的对象 192 9.5 枚举成员与switch匹配 192 9.6 访问枚举类型中成员的原始值 193 9.6.1 通过成员访问原始值 193 9.6.2 通过原始值访问成员 194 9.7 关联值 195 9.8 定义枚举的其他内容 195 9.8.1 定义属性 195 9.8.2 定义方法 197 9.8.3 定义下标脚本 198 9.9 递归枚举 199 9.10 结构的构成 200 9.11 结构的创建与实例化 200 9.11.1 结构的创建 200 9.11.2 结构体的实例化 200 9.12 定义结构中的内容 201 9.12.1 定义属性 201 9.12.2 定义方法 204 9.12.3 定义下标脚本 205 9.13 类、枚举、结构的区别 206 9.14 嵌套类型 206 9.15 综合案例 208 9.15.1 输出对应音符发音 208 9.15.2 根据棱长计算正方体的表面积和 体积 208 9.16 上机实践 209 第 10章 构造器和析构器 210 10.1 值类型的构造器 210 10.1.1 默认构造器 210 10.1.2 自定义构造器 211 10.1.3 构造器代理 214 10.2 类的构造器 216 10.2.1 默认构造器 217 10.2.2 自定义构造器 217 10.2.3 构造器代理 220 10.2.4 类的两段式构造过程 221 10.2.5 构造器的继承和重载 222 10.2.6 必要构造器 225 10.3 可失败构造器 226 10.3.1 定义可失败构造器 226 10.3.2 枚举类型的可失败构造器 227 10.3.3 类的可失败构造器 228 10.3.4 构造失败的传递 229 10.3.5 重写一个可失败构造器 230 10.3.6 可失败构造器init! 231 10.4 构造器的特殊情况 232 10.4.1 可选属性类型 232 10.4.2 修改常量属性 232 10.5 设置默认值 233 10.5.1 在定义时直接赋值 233 10.5.2 在构造器中赋值 233 10.5.3 使用闭包设置属性的默认值 234 10.5.4 使用函数设置默认值 235 10.6 析构器 235 10.6.1 理解析构器 235 10.6.2 析构器的定义 236 10.6.3 使用析构器 236 10.6.4 使用析构器的注意事项 237 10.6.5 构造器和析构器的区别 239 10.7 综合案例 239 10.7.1 游戏属性 239 10.7.2 模拟下线通知 240 10.8 上机实践 240 第 11章 扩展和协议 241 11.1 扩展 241 11.1.1 扩展的定义 241 11.1.2 扩展属性 241 11.1.3 扩展构造器 243 11.1.4 扩展方法 244 11.1.5 扩展下标脚本 246 11.1.6 扩展嵌套类型 247 11.2 协议 248 11.2.1 协议的定义 248 11.2.2 协议的实现 248 11.2.3 协议的成员声明——属性 249 11.2.4 协议的成员声明——方法 251 11.2.5 协议的成员声明——可变方法 252 11.2.6 协议的成员声明——构造器 253 11.3 可选协议 254 11.3.1 定义可选协议 254 11.3.2 声明可选成员 254 11.3.3 调用可选协议 255 11.4 使用协议 256 11.4.1 协议作为常量、变量等的数据 类型 256 11.4.2 协议作为返回值或参数类型 257 11.4.3 协议作为集合的元素类型 258 11.5 在扩展中使用协议 259 11.5.1 在扩展中实现协议 259 11.5.2 定义协议成员 259 11.5.3 扩展协议声明 260 11.6 协议的继承 260 11.7 协议合成 262 11.8 检查协议的一致性 263 11.9 委托 264 11.10 综合案例 267 11.11 上机实践 268 第 12章 Swift语言的其他主题 269 12.1 自动引用计数 269 12.1.1 自动引用计数的工作机制 269 12.1.2 循环强引用的产生 270 12.1.3 循环强引用的解决方法 273 12.2 运算符重载 278 12.2.1 为什么使用运算符重载 278 12.2.2 算术运算符的重载 278 12.2.3 一元负号/正号运算符的重载 279 12.2.4 复合赋值运算符的重载 280 12.2.5 自增自减运算符的重载 281 12.2.6 比较运算符的重载 285 12.2.7 自定义运算符的重载 286 12.3 泛型 289 12.3.1 泛型函数 289 12.3.2 泛型类型 290 12.3.3 泛型类的层次结构 292 12.3.4 扩展一个泛型类型 294 12.3.5 具有多个类型参数的泛型 295 12.3.6 类型约束 295 12.3.7 关联类型 296 12.4 错误处理 300 12.4.1 抛出错误 300 12.4.2 捕获错误和处理错误 301 12.4.3 清理动作 302 12.5 综合案例 302 12.6 上机实践 303 第 13章 使用Swift开发iOS 应用 304 13.1 创建项目 304 13.2 运行程序 306 13.3 模拟器的操作 307 13.3.1 模拟器与真机的区别 307 13.3.2 退出应用程序 307 13.3.3 应用程序图标的设置 307 13.3.4 语言设置 309 13.3.5 旋转 312 13.3.6 删除应用程序 312 13.4 编辑界面 313 13.4.1 界面介绍 313 13.4.2 设计界面 314 13.4.3 视图对象库的介绍 316 13.4.4 编写代码 317 13.5 上机实践 320 第 14章 测试和发布App 321 14.1 测试App概述 321 14.1.1 测试驱动的软件开发流程 321 14.1.2 iOS单元测试框架 322 14.2 使用XCTest测试框架测试驱动的 软件开发案例 322 14.2.1 测试案例前期准备 322 14.2.2 添加XCTest到项目中 326 14.2.3 测试驱动的开发流程 328 14.3 发布前的准备工作 332 14.3.1 申请付费的账号 332 14.3.2 申请App ID 335 14.3.3 申请证书 336 14.3.4 添加图标 343 14.3.5 调整Application Target属性 344 14.3.6 为发布进行编译 345 14.3.7 应用打包 347 14.4 进行发布 349 14.4.1 创建应用及基本信息 349 14.4.2 应用定价信息 352 14.4.3 上传应用 353 14.5 常见审核不通过的原因 357 14.6 上机实践 358 第 15章 综合案例:打砖块游戏 359 15.1 功能介绍 359 15.2 界面设计 360 15.2.1 准备工作 360 15.2.2 主界面设计 361 15.2.3 游戏界面设计 362 15.2.4 游戏介绍界面设计 363 15.3 功能实现 364 15.3.1 界面之间的切换 364 15.3.2 打砖块游戏功能 368 15.4 真机测试 374
本书系统地介绍了使用ASP.Net MVC开发微信公众平台应用程序的的流程、方法、技巧和注意事项,内容涵盖微信...
第1章对Android平台的历史和现状、架构和特点、开发环境的搭建作了简要介绍;第2章介绍了Android开发...
本书以一个完整的案例来讲述移动应用的开发过程,并将其功能需求穿插到书中各章节,通过结合该案例给读者系统而生动的...
本书主要内容包括:微信公众号概述、微信公众号开发入门、微信公众号接口入门、微信网页设计样式库、OneThink...
本书共分为15章,主要内容包括编写Swift开发环境配置、Swift语言基础、语句和表达式、集合类型、程序控制...
Java是互联网时代深受开发者欢迎的编程语言,广泛应用于开发移动应用、Web应用、分布式应用、游戏、系统服务和...
本书是为将C语言作为入门语言的程序设计课程的初学者所编写的,以培养读者程序设计的基本能力为基本目标。 本书全...
本书是一本系统、实用、易学的Python入门教材。全书围绕Python3的核心知识点,按照Python编程的学...
本书以易于理解的语言表述方式,将理论知识融入程序案例,从基础入门到项目实战,系统地阐述了Java程序设计的相关...
Java具有面向对象、跨平台、安全稳定等优点,是目前软件设计开发中应用极为广泛的编程语言,也是“互联网时代”最...
我要评论