具体描述
《Swift 权威指南》共分20章,专门介绍了Swift的基础语法及进行应用和游戏开发的技术。主要内容包括运算符、字符串、集合类、控制流、函数、枚举类型、类、结构体、属性、方法、下标、泛型、扩展、协议等内容,以及使用Swift语言开发iOS平台的应用和游戏。最后给出了一个Flappybird游戏综合案例,让读者了解使用Swift语言开发游戏的完整步骤。
《Swift 权威指南》适合iOS程序员、Swift初学者学习用书,也可作为大专院校及培训学校的教学用书。
作者简介
李宁,硕士,国内第一批Android实践者,畅销书作者。对Android应用与内核技术有深入研究,实战经验丰富。精通Java、C、C++等语言,专注于移动通信领域。曾领导和参与多个大型项目的研发。自从2005年进入写作领域以来,曾在IT168、《程序员》等媒体发表了100多篇技术文章,优秀代表作《Android权威指南》深受读者好评。
目录信息
语言介绍
1.1 Swift语言的前世今生
1.2 Swift到底是怎样的一种语言
1.3 Swift开发环境搭建
1.4 创建Swift工程(OS X和iOS平台)
1.5 瞧一瞧Swift到底长啥样
1.6 所见即所得的Playground
1.7 小结
第2章 千里之行始于足下--Swift语言基础
2.1 Swift语句和分号
2.2 变量和常量
2.2.1 定义和初始化
2.2.2 将变量和常量值插入字符串中
2.2.3 变量和常量的命名规则
2.2.4 为变量和常量指定数据类型
2.3 数据类型
2.3.1 整数类型
2.3.2 数制转换
2.3.3 浮点类型
2.3.4 数值的可读性
2.3.5 数值类型之间的转换
2.3.6 类型别名
2.3.7 布尔类型
2.4 字符和字符串
2.4.1 字符类型的常量和变量
2.4.2 字符串类型的常量和变量
2.4.3 枚举字符串中的所有字符
2.4.4 获取字符串中字符的Unicode编码
2.4.5 字符串和字符的连接
2.4.6 在字符串中包含特殊字符
2.4.7 字符串之间的比较
2.4.8 字符串的大小写转换
2.5 元组(tuples)类型
2.5.1 元组类型的定义
2.5.2 获取元组中的元素值
2.5.3 为元组中的元素命名
2.6 可选类型
2.7 注释
2.8 小结
第3章 万丈高楼平地起--基本操作符
3.1 操作符的种类
3.2 赋值操作符
3.3 数值操作符
3.3.1 四则运算操作符
3.3.2 整数求余
3.3.3 浮点数求余
3.3.4 自增和自减
3.3.5 一元负号和正号
3.4 复合赋值操作符
3.5 比较操作符
3.6 三元条件操作符
3.7 区间操作符
3.8 逻辑操作符
3.8.1 逻辑非
3.8.2 逻辑与
3.8.3 逻辑或
3.8.4 组合逻辑
3.8.5 使用圆括号指定优先级
3.9 小结
第4章 此字典非彼字典--数组和字典
4.1 数组(Array)
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.2 字典(Dictionary)
4.2.1 创建和初始化字典
4.2.2 创建空的字典
4.2.3 添加、修改和删除字典中的数据
4.2.4 获取字典中的值
4.2.5 将value转换为指定的类型值
4.2.6 枚举字典中的key和value
4.2.7 将keys和values转换为数组
4.3 小结
第5章 千变万化的程序--控制流
5.1 for循环
5.1.1 对区间操作符进行循环
5.1.2 枚举数组和字典中的元素
5.1.3 枚举字符串中的所有字符
5.1.4 条件增量for循环语句
5.2 while和do...while循环
5.2.1 while循环
5.2.2 do...while循环
5.3 条件语句(if和switch)
5.3.1 if条件语句
5.3.2 Switch条件语句的基本用法
5.3.3 fallthrough语句
5.3.4 使用区间操作符进行条件匹配
5.3.5 使用元组进行条件匹配
5.3.6 where子句
5.4 在控制流中使用的控制语句(continue和break)
5.5 可跳转的标签
5.6 小结
第6章 丰富多彩的功能--函数
6.1 函数的定义和调用
6.2 返回多值的函数
6.3 扩展参数
6.4 扩展参数和内部参数合二为一
6.5 默认参数值
6.6 可变参数
6.7 常量和变量参数
6.8 输入输出参数
6.9 函数类型
6.10 嵌套函数
6.11 小结
第7章 代码之美的诠释--闭包
7.1 闭包表达式
7.1.1 使用闭包表达式代替回调函数
7.1.2 省略参数类型
7.1.3 省略返回值类型
7.1.4 省略return语句
7.1.5 既然都一样,那就去掉一个
7.1.6 直接给跪了!连骨架都没了
7.2 尾随闭包
7.3 捕获值
7.4 闭包是引用类型
7.5 小结
第8章 特殊的数据--枚举类型
8.1 枚举类型的语法格式
8.2 匹配枚举成员
8.3 组合枚举成员
8.4 设置枚举成员的原始值
8.5 小结
第9章 Swift语言的核心--类和结构体
9.1 类和结构体基础
9.1.1 类和结构体的异同点
9.1.2 定义类和结构体
9.1.3 创建类和结构体实例
9.1.4 访问和设置类和结构体成员的值
9.1.5 值类型和引用类型
9.1.6 判断两个变量或常量引用了同一个类对象
9.2 属性
9.2.1 存储属性
9.2.2 惰性存储属性
9.2.3 可读写的计算属性
9.2.4 只读计算属性
9.2.5 属性观察器
9.2.6 静态属性
9.3 方法
9.3.1 实例方法
9.3.2 方法的局部参数名和外部参数名
9.3.3 为方法的第一个参数增加外部参数名
9.3.4 类型中的self
9.3.5 方法的变异(mutating)
9.3.6 类型方法
9.4 构造器
9.4.1 没有参数的构造器
9.4.2 构造器重载
9.4.3 构造器的内部参数和外部参数
9.4.4 默认构造器
9.4.5 结构体的逐一成员构造器
9.5 析构器
9.6 为类和结构体增加下标(Subscript)操作
9.7 小结
第10章 容易犯错的地方--类的继承
10.1 如何继承一个父类
10.2 重写方法
10.3 重写属性
10.4 重写属性观察器
10.5 方法被重写
10.6 构造器在继承中的调用规则
10.6.1 构造器和便利构造器
10.6.2 指定构造器和便利构造器是如何继承的
10.6.3 为什么子类必须调用父类的构造器
10.7 小结
第11章 内存管理机制--ARC
11.1 ARC的工作原理
11.2 测试ARC在内存管理中所起到的作用
11.3 解决循环强引用问题
11.3.1 什么是循环强引用
11.3.2 弱引用
11.3.3 无主引用
11.4 闭包引起的循环强引用
11.5 小结
第12章 让程序不抛出异常顺畅运行--可选链
12.1 什么是可选链
12.2 使用可选链访问属性
12.3 使用可选链调用方法
12.4 使用可选链调用下标
12.5 多层连续使用可选链
12.6 对方法返回值执行可选链
12.7 小结
第13章 Swift语言的摩法--类型转换
13.1 类型转换概述
13.2 类型检测
13.3 类型强行转换
13.4 AnyObject和Any的类型转换
13.4.1 AnyObject类型
13.4.2 Any类型
13.5 小结
第14章 为程序增添无限动力--扩展
14.1 什么是扩展
14.2 扩展语法
14.3 扩展计算型属性
14.4 扩展构造器
14.5 扩展方法
14.6 修改实例方法
14.7 扩展下标
14.8 扩展嵌套类型
14.9 小结
第15章 开发大型程序必备无素--协议
15.1 协议的语法
15.2 协议中的成员
15.2.1 属性
15.2.2 方法
15.2.3 突变方法
15.3 协议类型
15.4 委托(Delegate)
15.5 在扩展中添加成员
15.6 通过扩展补充协议声明
· · · · · · (收起)
读后感
用户评价
从一个项目经理的角度来看,这本书的实战价值超出了我的预期。我原本以为它会偏重纯理论研究,但实际上,它对性能调优和错误排查的讲解异常细致和实用。书中有一章专门剖析了在高并发场景下,系统延迟是如何一步步累积的,并且给出了具体的监控指标和诊断工具的使用方法,甚至连那些需要深入操作系统内核才能看到的底层日志分析都有涉及。这些内容对于我组织开发团队、评估项目风险和制定SLA(服务等级协议)时,提供了坚实的理论依据和可操作的流程。它教会的不仅仅是“如何写出能跑的代码”,更是“如何写出健壮、高效、易于维护的工业级代码”,这种面向工程实践的深度思考,是任何快速入门教程都无法比拟的,绝对是工具箱里不可或缺的重型装备。
我过去也尝试过好几本关于系统编程的入门读物,但坦白说,它们大多停留在概念的罗列,讲到深入的底层实现时,往往就戛然而止,留下一堆“为什么”和“怎么办”的疑问。这本书的独特之处在于其叙事的深度和广度。它并没有仅仅停留在语法层面,而是深入挖掘了语言设计者背后的思考逻辑和权衡取舍。比如,在讨论内存管理机制时,作者没有直接抛出解决方案,而是先细致地梳理了早期语言在资源受限环境下的痛点,一步步引导读者理解当前模型出现的历史必然性。这种“追本溯源”的讲解方式,让我对很多看似理所当然的特性产生了全新的认识,不再是机械地记忆API,而是真正理解了“这样做”的精妙之处。它仿佛为你打开了一扇通往高级设计哲学的大门,让你不仅学会了“如何使用”,更明白了“为何要这样设计”,这种思维层面的提升,远比单纯学会几条新命令更有价值。
这本书的装帧设计真是让人眼前一亮,硬壳封面泛着低调的金属光泽,拿在手里沉甸甸的,立刻就能感受到它的分量。内页纸张选用了偏米黄的哑光材质,触感细腻,即便是长时间阅读也不会觉得刺眼疲劳,这对于我们这些需要长时间盯着屏幕和书本的开发者来说,简直是福音。排版布局非常考究,字体大小适中,段落之间的留白恰到好处,使得整体视觉观感极为舒适,即便是初次接触这类技术书籍的人,也不会被密集的文字吓倒。更值得称赞的是,书中穿插的那些插图和代码示例,清晰度极高,箭头指示和重点标记都用得很精准,让人能迅速抓住核心概念,而不是在密密麻麻的文本中迷失方向。从第一页翻开,我就有一种强烈的预感,这不仅仅是一本技术手册,更像是一件精心打磨的工艺品,每一个细节都在向读者传达着“专业”与“品质”的态度。这种对实体书体验的重视,在如今这个数字化阅读盛行的时代,显得尤为珍贵,它成功地将冰冷的技术知识,通过精美的实体呈现,转化成了一种令人愉悦的学习体验。
我特别欣赏作者在处理“最佳实践”与“历史遗留问题”之间的平衡态度。许多技术书籍要么过于理想化,只介绍最前沿、最光鲜亮丽的新特性,对旧有代码的兼容性问题避而不谈;要么就是陷在旧代码的泥潭里,让人感觉学到的知识已经过时。这本书在这方面做到了极佳的平衡。它清晰地界定了哪些是推荐的新范式,以及为什么要使用它们,同时也没有回避在现实世界的企业级应用中仍然大量存在的历史代码模式。对于那些遗留代码中的“陷阱”和“反模式”,作者不仅指出了错误,还详尽分析了导致这些错误的历史背景,甚至给出了优雅的重构建议。这让我在实际工作中,无论是面对新项目还是维护旧系统,都能找到切实可行的指导方针,而不是被教条主义束缚住手脚。
对于我这种跨行转入研发领域的新人来说,技术书籍的“可接近性”至关重要。我经常发现很多专业书籍,用词晦涩,充满了只有资深专家才能理解的行话,读起来像是啃石头。然而,这本书的语言风格非常平易近人,它在保持专业严谨性的前提下,大量运用了生动的比喻和贴近日常生活的类比来解释复杂的抽象概念。例如,它用“交响乐队的指挥”来形容某个关键的调度器角色,一下子就让那个原本模糊不清的进程间通信概念变得具象化了。即便是对于那些我第一次接触的框架和架构模式,作者也设计了一套循序渐进的讲解路径,先给出一个宏观鸟瞰图,然后再层层深入到细节模块,这种“由大到小”的结构,极大地降低了我的学习焦虑感,让我能够自信地一步步攻克难关,感觉自己不再是孤军奋战。
出书过于心急,有很多知识点2.0都不用了,排版不好,还有很多错别字,冲着SpriteKit去看的,结果只有最后一章几页讲解了一下,后悔买了。
出书过于心急,有很多知识点2.0都不用了,排版不好,还有很多错别字,冲着SpriteKit去看的,结果只有最后一章几页讲解了一下,后悔买了。
本书语言较为流畅,但是书中代码的排版很差,另外是以Swift语言测试版为基础写的,书中的很多语法在当前Swift2.0中已经被废弃,不建议阅读本书,另外,书中谬误不少,除去字面错误,本书居然还有知识点讲解的错误,由以P120中的9.3.5中的方法的变异为代表。这是比较难以接受的,推荐两颗星,另外,最后的Flappybird没有给出源码。
出书过于心急,有很多知识点2.0都不用了,排版不好,还有很多错别字,冲着SpriteKit去看的,结果只有最后一章几页讲解了一下,后悔买了。
快速入门很好用,但是官方文档更舒服。