零基础学Swift 图文版

零基础学Swift 图文版
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: , [美] ,
2018-08
版次: 1
ISBN: 9787115485595
定价: 99.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 303页
正文语种: 简体中文
10人买过
  • 这是一本好玩又实用的Swift语言编程入门学习读物,本书语言轻松诙谐,配以彩色图片,即使是没有任何编程经验的初学者也能很快学会。本书以iPhone应用为基础框架对Swift语言的基本概念、实际应用进行了展开讲解,让读者逐步学习Swift语言的各种编程运用。 格洛丽亚· 温奎斯特是一位老苹果爱好者,小时候还在家里的Apple III计算机上玩过魔域大冒险游戏。她先学的Logo和BASIC语言,然后在读机械工程学位的时候学了C语言。她做了一段时间的机械工程师,然后发现她真正想要的工作是写代码。于是她去读夜校来学习Java,然后是Lisp,然后是JavaScript,zui后是iOS编程和Objective-C。她发现她热爱编写app,一旦开始jiu再没有放手过!

    麦特·麦卡锡10岁的时候在Apple II+上学习了BASIC编程。他还记得他的D一个程序,虽然只有两行代码,但是立刻jiu把他迷住了。他用很多编程语言做过职业编程(也有为了乐趣的)。不过当2008年iOS App Store出现的时候,他立刻沉迷于其中,迅速开始以他的公司——番茄交互有限责任公司——的名义发布iOS app了。麦特从2012年开始成为职业iOS工程师,开发给医生和病人用的健康app。

    格洛丽亚和麦特住在马萨诸塞州的康科德,他们是六个孩子的混合家庭的父母。《给孩子的iPhone App编程》是他们的D一本书。 目 录

    第 一部分 Xcode和Swift 1

    第 1章 Hello,world! 3

    1.1 安装Xcode,你的代码编辑器 4

    1.2 你的第 一个App! 5

    1.2.1 介绍故事板 9

    1.2.2 从对象库加入用户界面元素 10

    1.2.3 保存你的工作 13

    1.3 在实际的设备上运行这个App 14

    1.4 我们学到了什么 16

    第 2章 学习在playground中编程 17

    2.1 常量和变量 19

    2.1.1 何时该使用常量或变量 21

    2.1.2 给常量和变量起名字 22

    2.2 数据类型 22

    2.2.1 声明数据类型 23

    2.2.2 常用数据类型 24

    2.2.3 类型推断 25

    2.2.4 用类型转换来改变数据类型 26

    2.3 运算符 27

    2.3.1 计算的顺序 30

    2.3.2 带括号的计算顺序 31

    2.3.3 复合赋值运算符 31

    2.4 我们学到了什么 33

    第3章 做选择 35

    3.1 布尔表达式 36

    3.1.1 相等和不相等 36

    3.1.2 大于和小于 37

    3.1.3 复合布尔表达式 38

    3.2 条件语句 40

    3.2.1 if语句 40

    3.2.2 switch语句 43

    3.3 我们学到了什么 45

    第4章 写重复执行的代码 47

    4.1 打开调试区域 47

    4.2 用for-in在一段范围内或一个容器内循环 48

    4.2.1 说你好! 48

    4.2.2 说早上好! 49

    4.3 测试条件的while循环 50

    4.3.1 猜数 51

    4.3.2 缩短字符串 52

    4.4 用哪个循环? 53

    4.5 嵌套和作用域 54

    4.5.1 嵌套的代码块 54

    4.5.2 常量和变量的作用域 55

    4.6 我们学到了什么 57

    第5章 可选值能让程序更安全 59

    5.1 什么是可选值? 59

    5.2 创建可选值 60

    5.2.1 可选值 61

    5.2.2 特殊的运算符: 65

    5.3 我们学到了什么 65

    第6章 在字典和数组中保存成批数据 67

    6.1 用数组有序保存数据 67

    6.1.1 可写和不可写的数组 68

    6.1.2 类型推断 68

    6.1.3 访问数组中的元素 69

    6.1.4 小心范围 69

    6.1.5 向数组中添加元素 70

    6.1.6 合并数组 71

    6.1.7 从数组中删除元素 71

    6.1.8 替换数组中的元素 72

    6.1.9 使用数组的属性 73

    6.1.10 循环遍历数组 74

    6.2 字典是关键! 75

    6.2.1 初始化字典 75

    6.2.2 访问字典中的值 76

    6.2.3 往字典里添加元素 77

    6.2.4 从字典中删除元素 77

    6.2.5 替换字典中的元素 78

    6.2.6 使用字典的属性 78

    6.2.7 遍历字典 79

    6.3 我们学到了什么 80

    第7章 函数是场聚会,邀请你来参加 81

    7.1 输入和输出 81

    7.2 编写自定义的函数 82

    7.3 有参数的函数更强大 83

    7.3.1 制作聚会邀请信 84

    7.3.2 一次性邀请所有的朋友 86

    7.3.3 通知客人 87

    7.4 参数标签 89

    7.4.1 添加自定义参数标签 90

    7.4.2 删除参数标签 91

    7.5 返回值 91

    7.5.1 哪个盒子大? 91

    7.5.2 条件返回 92

    7.6 我们学到了什么 94

    第8章 自定义类和结构 95

    8.1 创建类 96

    8.1.1 类的定义 96

    8.1.2 在属性中保存数据 97

    8.1.3 创建类的实例 97

    8.1.4 访问类的属性 98

    8.1.5 用初始化方法定制每一个蛋糕 100

    8.1.6 添加一个生日祝贺方法 103

    8.1.7 写一个助手方法 104

    8.2 叫作self的特殊属性 106

    8.3 类的继承 107

    8.3.1 创建父类 108

    8.3.2 创建子类 108

    8.3.3 通过类型转换来检测数据类型 110

    8.3.4 用向下类型转换使类型更明确 113

    8.4 数值类型和引用类型 114

    8.5 使用结构 117

    8.6 我们学到了什么 118

    D二部分 生日记录本 119

    第9章 在故事板上创建按钮和屏幕 121

    9.1 App的概述 121

    9.2 创建一个新的Xcode项目 122

    9.3 添加App的图标 125

    9.4 显示朋友的生日 126

    9.4.1 添加表格视图控制器 127

    9.4.2 添加导航控制器 129

    9.4.3 添加按钮 130

    9.5 设置输入控件标签 133

    9.5.1 添加朋友的名字和生日 133

    9.5.2 用自动布局让App在所有设备上都有wan美外观 138

    9.5.3 添加保存和放弃的按钮 139

    9.6 我们学到了什么 140

    第 10章 用Birthday类来处理用户输入 141

    10.1 Birthday类 141

    10.1.1 创建一个新文件 142

    10.1.2 编写Birthday类 144

    10.2 做用户输入的程序 144

    10.2.1 创建Add a Birthday的视图控制器 145

    10.2.2 把代码和输入控件连接起来 146

    10.2.3 把代码连接到故事板 147

    10.2.4 设置zui大的出生日期 149

    10.3 保存Birthday 150

    10.3.1 挂上Save按钮 150

    10.3.2 从文本输入框读取文本 151

    10.3.3 从日期挑选器获得日期 152

    10.3.4 创建一个Birthday对象 153

    10.4 添加Cancel按钮 153

    10.5 我们学到了什么 154

    第 11章 显示生日 155

    11.1 创建Birthday列表 155

    11.1.1 创建生日表格视图控制器 156

    11.1.2 在表格视图上加单元格 158

    11.1.3 设置Birthdays表格视图控制器 161

    11.1.4 在表格视图中显示生日 162

    11.2 合起来 166

    11.2.1 代理 166

    11.2.2 设置代理连接两个控制器 171

    11.3 我们学到了什么 172

    第 12章 保存生日 173

    12.1 在数据库中保存生日 173

    12.1.1 Birthday数据项 174

    12.1.2 Birthday属性 175

    12.1.3 应用程序代理 177

    12.2 代码整洁 182

    12.3 给App多做些功能 185

    12.3.1 按字母顺序排列生日 186

    12.3.2 删除生日 187

    12.4 我们学到了什么 189

    第 13章 发出生日通知 191

    13.1 用户通知框架 191

    13.1.1 注册本地通知 192

    13.1.2 安排通知 194

    13.1.3 删除通知 199

    13.2 我们学到了什么 200

    第三部分 校园滑板高手 201

    第 14章 设置舞台 203

    14.1 哪里可以获得图片和声效? 204

    14.2 用Xcode的SpriteKit做游戏 204

    14.3 创建游戏项目 205

    14.4 添加图片 206

    14.5 场景:显示背景图片 207

    14.6 要如何播放:屏幕方向 211

    14.7 为不同的屏幕分辨率调整图像的大小 213

    14.8 我们学到了什么 216

    第 15章 真的把“Schoolhouse Skateboarder”做成游戏 217

    15.1 我们的英雄:滑板高手 217

    15.1.1 创建Skater角色类 218

    15.1.2 引入SpriteKit 218

    15.1.3 给Skater类加入自定义的属性 218

    15.1.4 在场景中创建Skater的实例 219

    15.1.5 设置Skater 220

    15.1.6 让Skater出现在屏幕上 222

    15.1.7 理解SpriteKit的调试信息 223

    15.2 希丁的砖块 224

    15.2.1 创建人行道砖块 224

    15.2.2 刷新人行道砖块 226

    15.2.3 用砖块填满屏幕 228

    15.2.4 留下跳的沟 229

    15.3 游戏循环 231

    15.3.1 追踪更新的时间 231

    15.3.2 计算每次更新所用的时间 231

    15.3.3 用所用的时间来调整滚动的速度 232

    15.3.4 更新砖块 233

    15.4 天天向上——让滑板角色跳跃 234

    15.4.1 使用单击手势识别器 234

    15.4.2 用简单的方法仿真重力 236

    15.4.3 检查落地 237

    15.5 我们学到了什么 238

    第 16章 使用SpriteKit的物理引擎 239

    16.1 设置物理世界 240

    16.2 物理体 240

    16.2.1 给物理体以形状 241

    16.2.2 设置物理体的属性 242

    16.2.3 给滑板角色赋予物理体 243

    16.2.4 给砖块添加物理体 245

    16.3 接触与碰撞 246

    16.3.1 处理接触和碰撞 246

    16.3.2 响应接触 249

    16.4 对物理体施加力 250

    16.5 开始和结束游戏 251

    16.5.1 开始游戏 251

    16.5.2 结束游戏 254

    16.6 我们学到了什么 255

    第 17章 调整难度、采摘钻石和记录分数 257

    17.1 让游戏加速 257

    17.2 增加多个高度的人行道平台 258

    17.2.1 定义多个砖块高度 259

    17.2.2 修改砖块派生的方式 260

    17.3 增加要采摘的钻石 262

    17.3.1 派生和记录钻石 262

    17.3.2 决定何时产生新钻石 264

    17.3.3 删除钻石 264

    17.3.4 更新钻石 266

    17.3.5 采摘钻石 267

    17.4 实现计分和显示 268

    17.4.1 创建标签 268

    17.4.2 记录分数 272

    17.4.3 更新标签 273

    17.4.4 更新玩家分数 274

    17.4.5 让钻石有价 275

    17.4.6 记录zui高分数 276

    17.5 调整游戏规则 277

    17.6 我们学到了什么 278

    第 18章 游戏的状态、菜单、声音和特效 279

    18.1 记录游戏状态 279

    18.2 添加菜单系统 281

    18.2.1 创建MenuLayer类 282

    18.2.2 需要的时候显示菜单层 286

    18.2.3 删除菜单层 288

    18.3 发出声音 289

    18.3.1 添加音频文件 289

    18.3.2 在正确的时机播放声音 290

    18.4 射出火花 291

    18.5 我们学到了什么 297

    资源 299

    查找错误 299

    Apple文档 300

    Xcode快捷键 301

    iOS仿真器快捷键 302

    Xcode的版本 302
  • 内容简介:
    这是一本好玩又实用的Swift语言编程入门学习读物,本书语言轻松诙谐,配以彩色图片,即使是没有任何编程经验的初学者也能很快学会。本书以iPhone应用为基础框架对Swift语言的基本概念、实际应用进行了展开讲解,让读者逐步学习Swift语言的各种编程运用。
  • 作者简介:
    格洛丽亚· 温奎斯特是一位老苹果爱好者,小时候还在家里的Apple III计算机上玩过魔域大冒险游戏。她先学的Logo和BASIC语言,然后在读机械工程学位的时候学了C语言。她做了一段时间的机械工程师,然后发现她真正想要的工作是写代码。于是她去读夜校来学习Java,然后是Lisp,然后是JavaScript,zui后是iOS编程和Objective-C。她发现她热爱编写app,一旦开始jiu再没有放手过!

    麦特·麦卡锡10岁的时候在Apple II+上学习了BASIC编程。他还记得他的D一个程序,虽然只有两行代码,但是立刻jiu把他迷住了。他用很多编程语言做过职业编程(也有为了乐趣的)。不过当2008年iOS App Store出现的时候,他立刻沉迷于其中,迅速开始以他的公司——番茄交互有限责任公司——的名义发布iOS app了。麦特从2012年开始成为职业iOS工程师,开发给医生和病人用的健康app。

    格洛丽亚和麦特住在马萨诸塞州的康科德,他们是六个孩子的混合家庭的父母。《给孩子的iPhone App编程》是他们的D一本书。
  • 目录:
    目 录

    第 一部分 Xcode和Swift 1

    第 1章 Hello,world! 3

    1.1 安装Xcode,你的代码编辑器 4

    1.2 你的第 一个App! 5

    1.2.1 介绍故事板 9

    1.2.2 从对象库加入用户界面元素 10

    1.2.3 保存你的工作 13

    1.3 在实际的设备上运行这个App 14

    1.4 我们学到了什么 16

    第 2章 学习在playground中编程 17

    2.1 常量和变量 19

    2.1.1 何时该使用常量或变量 21

    2.1.2 给常量和变量起名字 22

    2.2 数据类型 22

    2.2.1 声明数据类型 23

    2.2.2 常用数据类型 24

    2.2.3 类型推断 25

    2.2.4 用类型转换来改变数据类型 26

    2.3 运算符 27

    2.3.1 计算的顺序 30

    2.3.2 带括号的计算顺序 31

    2.3.3 复合赋值运算符 31

    2.4 我们学到了什么 33

    第3章 做选择 35

    3.1 布尔表达式 36

    3.1.1 相等和不相等 36

    3.1.2 大于和小于 37

    3.1.3 复合布尔表达式 38

    3.2 条件语句 40

    3.2.1 if语句 40

    3.2.2 switch语句 43

    3.3 我们学到了什么 45

    第4章 写重复执行的代码 47

    4.1 打开调试区域 47

    4.2 用for-in在一段范围内或一个容器内循环 48

    4.2.1 说你好! 48

    4.2.2 说早上好! 49

    4.3 测试条件的while循环 50

    4.3.1 猜数 51

    4.3.2 缩短字符串 52

    4.4 用哪个循环? 53

    4.5 嵌套和作用域 54

    4.5.1 嵌套的代码块 54

    4.5.2 常量和变量的作用域 55

    4.6 我们学到了什么 57

    第5章 可选值能让程序更安全 59

    5.1 什么是可选值? 59

    5.2 创建可选值 60

    5.2.1 可选值 61

    5.2.2 特殊的运算符: 65

    5.3 我们学到了什么 65

    第6章 在字典和数组中保存成批数据 67

    6.1 用数组有序保存数据 67

    6.1.1 可写和不可写的数组 68

    6.1.2 类型推断 68

    6.1.3 访问数组中的元素 69

    6.1.4 小心范围 69

    6.1.5 向数组中添加元素 70

    6.1.6 合并数组 71

    6.1.7 从数组中删除元素 71

    6.1.8 替换数组中的元素 72

    6.1.9 使用数组的属性 73

    6.1.10 循环遍历数组 74

    6.2 字典是关键! 75

    6.2.1 初始化字典 75

    6.2.2 访问字典中的值 76

    6.2.3 往字典里添加元素 77

    6.2.4 从字典中删除元素 77

    6.2.5 替换字典中的元素 78

    6.2.6 使用字典的属性 78

    6.2.7 遍历字典 79

    6.3 我们学到了什么 80

    第7章 函数是场聚会,邀请你来参加 81

    7.1 输入和输出 81

    7.2 编写自定义的函数 82

    7.3 有参数的函数更强大 83

    7.3.1 制作聚会邀请信 84

    7.3.2 一次性邀请所有的朋友 86

    7.3.3 通知客人 87

    7.4 参数标签 89

    7.4.1 添加自定义参数标签 90

    7.4.2 删除参数标签 91

    7.5 返回值 91

    7.5.1 哪个盒子大? 91

    7.5.2 条件返回 92

    7.6 我们学到了什么 94

    第8章 自定义类和结构 95

    8.1 创建类 96

    8.1.1 类的定义 96

    8.1.2 在属性中保存数据 97

    8.1.3 创建类的实例 97

    8.1.4 访问类的属性 98

    8.1.5 用初始化方法定制每一个蛋糕 100

    8.1.6 添加一个生日祝贺方法 103

    8.1.7 写一个助手方法 104

    8.2 叫作self的特殊属性 106

    8.3 类的继承 107

    8.3.1 创建父类 108

    8.3.2 创建子类 108

    8.3.3 通过类型转换来检测数据类型 110

    8.3.4 用向下类型转换使类型更明确 113

    8.4 数值类型和引用类型 114

    8.5 使用结构 117

    8.6 我们学到了什么 118

    D二部分 生日记录本 119

    第9章 在故事板上创建按钮和屏幕 121

    9.1 App的概述 121

    9.2 创建一个新的Xcode项目 122

    9.3 添加App的图标 125

    9.4 显示朋友的生日 126

    9.4.1 添加表格视图控制器 127

    9.4.2 添加导航控制器 129

    9.4.3 添加按钮 130

    9.5 设置输入控件标签 133

    9.5.1 添加朋友的名字和生日 133

    9.5.2 用自动布局让App在所有设备上都有wan美外观 138

    9.5.3 添加保存和放弃的按钮 139

    9.6 我们学到了什么 140

    第 10章 用Birthday类来处理用户输入 141

    10.1 Birthday类 141

    10.1.1 创建一个新文件 142

    10.1.2 编写Birthday类 144

    10.2 做用户输入的程序 144

    10.2.1 创建Add a Birthday的视图控制器 145

    10.2.2 把代码和输入控件连接起来 146

    10.2.3 把代码连接到故事板 147

    10.2.4 设置zui大的出生日期 149

    10.3 保存Birthday 150

    10.3.1 挂上Save按钮 150

    10.3.2 从文本输入框读取文本 151

    10.3.3 从日期挑选器获得日期 152

    10.3.4 创建一个Birthday对象 153

    10.4 添加Cancel按钮 153

    10.5 我们学到了什么 154

    第 11章 显示生日 155

    11.1 创建Birthday列表 155

    11.1.1 创建生日表格视图控制器 156

    11.1.2 在表格视图上加单元格 158

    11.1.3 设置Birthdays表格视图控制器 161

    11.1.4 在表格视图中显示生日 162

    11.2 合起来 166

    11.2.1 代理 166

    11.2.2 设置代理连接两个控制器 171

    11.3 我们学到了什么 172

    第 12章 保存生日 173

    12.1 在数据库中保存生日 173

    12.1.1 Birthday数据项 174

    12.1.2 Birthday属性 175

    12.1.3 应用程序代理 177

    12.2 代码整洁 182

    12.3 给App多做些功能 185

    12.3.1 按字母顺序排列生日 186

    12.3.2 删除生日 187

    12.4 我们学到了什么 189

    第 13章 发出生日通知 191

    13.1 用户通知框架 191

    13.1.1 注册本地通知 192

    13.1.2 安排通知 194

    13.1.3 删除通知 199

    13.2 我们学到了什么 200

    第三部分 校园滑板高手 201

    第 14章 设置舞台 203

    14.1 哪里可以获得图片和声效? 204

    14.2 用Xcode的SpriteKit做游戏 204

    14.3 创建游戏项目 205

    14.4 添加图片 206

    14.5 场景:显示背景图片 207

    14.6 要如何播放:屏幕方向 211

    14.7 为不同的屏幕分辨率调整图像的大小 213

    14.8 我们学到了什么 216

    第 15章 真的把“Schoolhouse Skateboarder”做成游戏 217

    15.1 我们的英雄:滑板高手 217

    15.1.1 创建Skater角色类 218

    15.1.2 引入SpriteKit 218

    15.1.3 给Skater类加入自定义的属性 218

    15.1.4 在场景中创建Skater的实例 219

    15.1.5 设置Skater 220

    15.1.6 让Skater出现在屏幕上 222

    15.1.7 理解SpriteKit的调试信息 223

    15.2 希丁的砖块 224

    15.2.1 创建人行道砖块 224

    15.2.2 刷新人行道砖块 226

    15.2.3 用砖块填满屏幕 228

    15.2.4 留下跳的沟 229

    15.3 游戏循环 231

    15.3.1 追踪更新的时间 231

    15.3.2 计算每次更新所用的时间 231

    15.3.3 用所用的时间来调整滚动的速度 232

    15.3.4 更新砖块 233

    15.4 天天向上——让滑板角色跳跃 234

    15.4.1 使用单击手势识别器 234

    15.4.2 用简单的方法仿真重力 236

    15.4.3 检查落地 237

    15.5 我们学到了什么 238

    第 16章 使用SpriteKit的物理引擎 239

    16.1 设置物理世界 240

    16.2 物理体 240

    16.2.1 给物理体以形状 241

    16.2.2 设置物理体的属性 242

    16.2.3 给滑板角色赋予物理体 243

    16.2.4 给砖块添加物理体 245

    16.3 接触与碰撞 246

    16.3.1 处理接触和碰撞 246

    16.3.2 响应接触 249

    16.4 对物理体施加力 250

    16.5 开始和结束游戏 251

    16.5.1 开始游戏 251

    16.5.2 结束游戏 254

    16.6 我们学到了什么 255

    第 17章 调整难度、采摘钻石和记录分数 257

    17.1 让游戏加速 257

    17.2 增加多个高度的人行道平台 258

    17.2.1 定义多个砖块高度 259

    17.2.2 修改砖块派生的方式 260

    17.3 增加要采摘的钻石 262

    17.3.1 派生和记录钻石 262

    17.3.2 决定何时产生新钻石 264

    17.3.3 删除钻石 264

    17.3.4 更新钻石 266

    17.3.5 采摘钻石 267

    17.4 实现计分和显示 268

    17.4.1 创建标签 268

    17.4.2 记录分数 272

    17.4.3 更新标签 273

    17.4.4 更新玩家分数 274

    17.4.5 让钻石有价 275

    17.4.6 记录zui高分数 276

    17.5 调整游戏规则 277

    17.6 我们学到了什么 278

    第 18章 游戏的状态、菜单、声音和特效 279

    18.1 记录游戏状态 279

    18.2 添加菜单系统 281

    18.2.1 创建MenuLayer类 282

    18.2.2 需要的时候显示菜单层 286

    18.2.3 删除菜单层 288

    18.3 发出声音 289

    18.3.1 添加音频文件 289

    18.3.2 在正确的时机播放声音 290

    18.4 射出火花 291

    18.5 我们学到了什么 297

    资源 299

    查找错误 299

    Apple文档 300

    Xcode快捷键 301

    iOS仿真器快捷键 302

    Xcode的版本 302
查看详情
12
您可能感兴趣 / 更多
零基础学Swift 图文版
Aesop\'s Favorite Fables: More Than 130 Classic Fables for Children!
Winter;Milo
零基础学Swift 图文版
Hilo Book 3: The Great Big Boom
Winick;Judd
零基础学Swift 图文版
My Name Is James Madison Hemings
Winter;Jonah;Widener;Terry
零基础学Swift 图文版
You Can\'t Drink a Meatball Through a Straw #7
Winkler;Henry;Oliver;Lin;Garrett;Scott
零基础学Swift 图文版
A Composer\'s Guide to Game Music
Winifred Phillips
零基础学Swift 图文版
How to Hug an Elephant #6
Winkler;Henry;Oliver;Lin;Garrett;Scott
零基础学Swift 图文版
Hilo Book 1: The Boy Who Crashed to Earth
Winick;Judd
零基础学Swift 图文版
There\'s a Zombie in My Bathtub #5
Winkler;Henry;Oliver;Lin;Garrett;Scott
零基础学Swift 图文版
Bookmarks Are People Too! #1
Winkler;Henry;Oliver;Lin;Garrett;Scott
零基础学Swift 图文版
Italic and Copperplate Calligraphy The Basics and Beyond
Winters;Eleanor
零基础学Swift 图文版
Christmas Days: 12 Stories and 12 Feasts for 12 Days
Winterson;Jeanette
零基础学Swift 图文版
Detectives in Togas
Winterfeld;Henry;Kleinert;Charlotte;Winston;Clara;Winston;Richard