发表于2024-12-22
√ 绝*仅有基于Swift 2的iOS开发图书
√ 比肩微信之Line大牛畅销书全新升级
√ 包罗万象、荟萃精华的实战技巧大全
√ 基于新版重写案例|Tip含金量继续攀升
Swift的易学难精体现在其实际项目暗坑无数,需要同时具备知识、技巧和经验的一定储备,本书试图让你快速到达这一境界;作者onevcat亲赴WWDC见证Swift发布,是全球头拨研究和实践者,对Swift的理解和运用,既能洞悉全局,又可直达细节;100个Swift编程技巧,涵盖方方面面,每个Tip独立成文,可拆可合,顺序阅读、按需翻阅或应急速查皆宜;面向中高级开发人员,充满独到见解,彻底脱离官方文档,入门者可用来迅速提升实践能力。
本书基于Swift版本Swift 2,是目前仅有的一本基于新版的书籍。Swift的易学难精体现在其实际项目暗坑无数,需要同时具备知识、技巧和经验的一定储备,本书试图让你快速到达这一境界。本书onevcat亲赴WWDC见证Swift发布,是全球第一批研究和实践者。对Swift的理解和运用,既能洞悉全局,又可直达细节。100个Swift编程技巧,涵盖方方面面。每个Tip独立成文,可拆可合,顺序阅读、按需翻阅或应急速查皆宜。面向中高级开发人员,充满独到见解,彻底脱离官方文档,入门者可用来迅速提升实践能力。
王巍 (onevcat) ,是来自中国的一线 iOS 开发者,毕业于清华大学。在校期间就开始进行 iOS 开发,拥有丰富的 Cocoa 和 Objective-C 开发经验,另外他也活跃于使用 C# 的 Unity3D 游戏开发界。曾经开发了《小熊推金币》,《Pomo Do》等一系列优秀的 iOS 游戏和应用。在业余时间,王巍会在 OneV's Den 撰写博客,分享他在开发中的一些心得和体会。另外,王巍还是翻译项目 objc 中国的组织者和管理者,为中国的 Objective-C 社区的发展做出了贡献。同时,他也很喜欢为开源社区贡献代码,是著名的 Xcode 插件 VVDocumenter 的作者。现在王巍旅居日本,并就职于即时通讯软件公司 Line,从事 iOS 开发工作,致力于为全世界带来更好体验和功能的应用。
这本书非常适合从 Objective-C 迁移至 Swift 的开发者,将两个语言的实现做对比,着眼于差异和特性,每个 Tip 都清晰明了。作为国内 Swift 圈里的先行者之一,作者填过的"坑"、总结的技巧,让后续开发者面对这门语言时更有信心。与 Swift 官方手册一样,我相信它将成为这门新语言必备的工具书。
——孙源@sunnyxx 90后 iOS 开发者,现就职于百度,多次在北京组织 iOS 开发者线下分享会
当 Swift 还是满面疮痍的时候,Onevcat 用谨慎、优雅与睿智为我们填平了这一切,每一位优秀的 Swifter 都应该把这本书放在枕边,像情人一样,每晚翻阅一下。
——周楷雯 Catch 团队(http://catchchat.me/)创始人
Swift 作为 iOS 和 Mac 开发的趋势,值得每一位 Apple 开发者投注精力。本书站在更高的视角,审视了 Swift 的新语法、新特性以及从 Objective C 转向 Swift 的方方面面。书中的示例深入浅出,讲解直击要害、重点突出,读者阅后定有醍醐灌顶之感。不过需要指出的是这并不是一本 Swift 的入门书,本书的受众是有 Objective-C 经验的开发者。
——郭中强(@Onetaway),前行中的独立开发者,正在打造一个让人愉悦的 GitHub 客户端
这本书罗列了 Swift 的各种特性和它们的适用场景,作者分享了不少宝贵的使用经验,使读者对 Swift 的理解进入更深的层次。
——知名 Swift 开源项目 LTMorphingLabel 作者 汤圣罡(@lexrus)
再版序 iii
推荐序 iv
序 vii
I Swift 新元素 1
Tip 1. 柯里化 (Currying) 2
Tip 2. 安全的资源组织方式 4
Tip 3. 将 protocol 的方法声明为 mutating 6
Tip 4. Sequence 7
Tip 5. 多元组(Tuple) 9
Tip 6. @autoclosure 和?? 11
Tip 7. Optional Chaining 14
Tip 8. 操作符 16
Tip 9. func 的参数修饰 19
Tip 10. 字面量转换 21
Tip 11. 下标 25
Tip 12. 方法嵌套 27
Tip 13. 命名空间 30
Tip 14. Any 和 AnyObject 32
Tip 15. typealias 和泛型接口 35
Tip 16. 可变参数函数 37
Tip 17. 初始化方法顺序 39
Tip 18. Designated,Convenience 和 Required 41
Tip 19. 初始化返回 nil 44
Tip 20. protocol 组合 47
Tip 21. static 和 class 51
Tip 22. 多类型和容器 54
Tip 23. default 参数 57
Tip 24. 正则表达式 59
Tip 25. 模式匹配 62
Tip 26. … 和..< 65
Tip 27. AnyClass、元类型和.self 67
Tip 28. 接口和类方法中的 Self 70
Tip 29. 动态类型和多方法 73
Tip 30. 属性观察 75
Tip 31. final 78
Tip 32. lazy 修饰符和 lazy 方法 81
Tip 33. Reflection 和 Mirror 84
Tip 34. 隐式解包 Optional 87
Tip 35. 多重 Optional 89
Tip 36. Optional Map 91
Tip 37. Protocol Extension 93
Tip 38. where 和模式匹配 98
Tip 39. indirect 和嵌套 enum 101
II 从 Objective-C/C 到 Swift 103
Tip 40. Selector 104
Tip 41. 实例方法的动态调用 106
Tip 42. 单例 108
Tip 43. 条件编译 111
Tip 44. 编译标记 113
Tip 45. @UIApplicationMain 115
Tip 46. @objc 和 dynamic 117
Tip 47. 可选接口和接口扩展 120
Tip 48. 内存管理,weak 和 unowned 122
Tip 49. @autoreleasepool 127
Tip 50. 值类型和引用类型 130
Tip 51. String 还是 NSString 132
Tip 52. UnsafePointer 134
Tip 53. C 指针内存管理 137
Tip 54. COpaquePointer 和 C convention 139
Tip 55. GCD 和延时调用 141
Tip 56. 获取对象类型 145
Tip 57. 自省 147
Tip 58. KVO 149
Tip 59. 局部 scope 152
Tip 60. 判等 155
Tip 61. 哈希 158
Tip 62. 类簇 160
Tip 63. Swizzle 162
Tip 64. 调用 C 动态库 165
Tip 65. 输出格式化 167
Tip 66. Options 169
Tip 67. 数组 enumerate 171
Tip 68. 类型编码 @encode 173
Tip 69. C 代码调用和 @asmname 175
Tip 70. sizeof 和 sizeofValue 177
Tip 71. delegate 179
Tip 72. Associated Object 181
Tip 73. Lock 183
Tip 74. Toll-Free Bridging 和 Unmanaged 185
III Swift 与开发环境及一些实践 189
Tip 75. Swift 命令行工具 190
Tip 76. 随机数生成 192
Tip 77. print 和 debugPrint 194
Tip 78. 错误和异常处理 196
Tip 79. 断言 203
Tip 80. fatalError 205
Tip 81. 代码组织和 Framework 208
Tip 82. Playground 延时运行 212
Tip 83. Playground 可视化 214
Tip 84. Playground 与项目协作 216
Tip 85. 数学和数字 218
Tip 86. JSON 220
Tip 87. NSNull 222
Tip 88. 文档注释 224
Tip 89. 性能考虑 226
Tip 90. Log 输出 228
Tip 91. 溢出 230
Tip 92. 宏定义 define 232
Tip 93. 属性访问控制 234
Tip 94. Swift 中的测试 236
Tip 95. Core Data 238
Tip 96. 闭包歧义 240
Tip 97. 泛型扩展 244
Tip 98. 兼容性 246
Tip 99. 列举 enum 类型 248
Tip 100. 尾递归 251
后记及致谢 253
再版序
时光匆匆,如白驹过隙。在技术革新的路上,毫不夸张地说,时间粒度是以分秒来度量的。对于一个 Apple 平台的程序员来说,WWDC 14 上我们经历了一场巨变,那就是 Swift 的横空出世。Swift 在短时间内就得到了大家的认可,无数对新技术有所追求的开发者已经开始在日常工作中使用这门富有活力的语言。在经过一年多的迭代后,Swift 迎来了一系列的进化和更新,变得更为成熟。自本书第 1 版出版至今,Swift 已经拥有了强大的开发者社区,在
GitHub 和 Stack Overflow 上每天都会有无数关于 Swift 的话题,使用 Swift 的开发者们也总结了很多关于这门语言的最佳实践。
在 WWDC 15 上,Apple 发布了 Swift 的重大更新,在 Swift 2 中,Apple 确定了面向 Protocol编程的理论,这为开发者们如何更好地使用 Swift 指明了方向。同时,新版本的 Swift 为我们提供了更安全的编码类型、更优秀的错误处理,以及更强大的 extension 等诸多语言特性,这一切都让我们在使用这门语言时能够更加得心应手。而更振奋人心的消息则是,Swift 将在年内开源,这必将为这门语言注入新的活力,开拓更为广阔的空间。在 TIOBE 语言排
行上,Swift 现在也将超过它的前辈和竞争对手——Objective-C,可以说使用 Swift 来开发Cocoa/CocoaTouch 程序已经逐渐成为业界潮流。开始学习和使用 Swift 最好的时机是一年前的 WWDC 14 之时,而次好的时机,就是当下。
本书第 1 版是基于一年前的 Swift 1 的,因为 Swift 本身的剧烈变动,有不少内容在今天看来已经过时。另外,我所在公司的 iOS 团队已经全面转向 Swift,我自己的个人项目和开源作品现在也都使用 Swift 进行构建,可以说在这一年内我个人也积累了不少新的经验,希望能够通过某种形式分享给大家。因此,这一版中将那些过时内容进行了删改,同时增加了一些对应 Swift 2 的新内容,其中就包括了这一年来的经验积累和对 Swift 2 中新特性的一些解
读。相对于第 1 版,此次将所有示例代码进行了汇总,并通过 Playground 的方式分发,方便读者查看和验证书中内容,同时也是对读者自行练习和巩固的一种鼓励。在经过对全书的重新审视和订正后,相信这一版的内容会更加切合 Swift 现在的特点,以及将来的发展方向。作为作者,我希望它能成为读者在学习 Swift 道路上的得力帮手。
最后,感谢电子工业出版社及博文视点公司,正是有了张春雨老师的帮助和鼓励,才使本书及再版成为可能。
——王巍,于 2015 年冬
推荐序
《让雨燕飞翔》
在 2014 年 6 月之前,如果我们在 Google 中输入“Swift”进行查找,搜到的是美国创作型歌手、大美女泰勒·斯威夫特。今天我们再去做同样的检索,搜索结果是一门编程语言,这门编程语言的名字就叫作“Swift”,它的 Logo 是一只极速飞翔的雨燕。
Swift 是 Apple 公司在 2014 年 WWDC 大会上推出的一门新语言,用于在 iOS/OS X 平台上开发应用程序,之前独霸这个庞大平台的语言一直是 Objective-C。可以说 Swift 是我所见过关注度最高的新语言,刚推出即万众瞩目,媒体和开发者在数天之内对 Swift 进行了集中的报道和讨论,英文手册迅速被翻译成中文,即使是谷歌 2009 年推出 Go 语言时也没有如此浩大的声势。时至今日,已经有大量的独立应用是基于 Swift 开发构建的。
2007 年之前,Objective-C 一直是 Apple 自家后院的小众语言,iOS 移动设备的爆发让这门语言的普及率获得了火箭一般的蹿升速度,截止到今天,Objective-C 在编程语言排行榜上排名第三,江湖人称三哥。Apple 一直在不遗余力地优化 Objective-C,包括把 GCC 的编译链替换成 LLVM + GCC,又替换成 LLVM + Clang,做语法简化、自动引用计数、增加 Blocks 和GCD 多线程异步处理技术……既然已经全盘掌握了 LLVM 和 Clang 技术,为什么不开发一门新语言呢?于是 Swift 语言诞生了。
Swift 的作者是天才的 70 后程序员 Chris Lattner,他同时是 LLVM 项目的主要发起人与作者之一、Clang 编译器的作者。Chris 毕业的时候正是 Apple 为了编译器焦头烂额的时候,因为Apple 之前的软件产品都依赖于整条 GCC 编译链,而开源界的大爷们并不买 Apple 的账,他们不愿意专门为了 Apple 公司的需求优化和改进 GCC 代码,所以 Apple 经过慎重的考虑后将编译器后端替换为 LLVM,并且把 Chris 招入麾下。Chris 进入了 Apple 之后如鱼得水,不
仅大幅度优化和改进 LLVM 以适应 Objective-C 的语法变革和性能要求,同时发起了 Clang项目,旨在全面替换 GCC。这个目标已经实现了,从 OS X 10.9 和 XCode 5 开始,LLVM +GCC 已经被替换成了 LLVM + Clang。
Swift 是 Chris 在 LLVM 和 Clang 之后第三个伟大的项目!
Swift是一门博采众长的现代语言,在设计的过程中,Chris参考了Objective-C、Rust、Haskell、Ruby、Python、C# 等优秀语言的特点,Swift 的语法特性最终形成。Swift 是面向 Cocoa 和Cocoa Touch 的编程语言,编译型,类型安全,生产环境的代码都需要 LLVM 编译成本地代码才能执行,但是 Swift 又具备很多动态语言的语法特性和交互方式,支持各种高级语言特性,包括闭包、泛型、面向对象、多返回值、可选变量、类型接口、元组、集合等。
很显然,这是一门准备取代 Objective-C 的编程语言,它将吸引更多的开发者加入苹果的软件生态圈,为 iOS 和 OS X 开发出更为丰富的 App。如果你是 App Store 的开发者,推荐尽早学习和掌握这门苹果力推的新语言。对于大部分新事物来说,越早介入,收获越大。
Swift 入门并不困难,Apple 公司甚至为这门语言提供了所写即所得的 Playground 功能,不仅实现了很多脚本语言支持的交互式编程,而且提供控制台输出、实时图形图像、时间线(timeline)变量跟踪等功能,开发者除了可以看到代码的实时运行结果,还能根据时间线阅读某个变量在代码片段中值的变化。这真是太棒了!另外,阅读官方提供的《The SwiftProgramming Language》也是快速入门的途径,Cocoa 开发者社区甚至在第一时间提供了高
质量的中译本。
问题的关键是入门了之后怎么办?当你读完教程学习了语法,自觉成竹在胸拔剑四顾的时候,突然发现 Swift 在实际的项目应用中会出现各种各样的问题,就像你手持一柄玄铁重剑,却无法洞悉剑诀的奥秘。如何让“雨燕”迅疾地飞翔?这就是《Swifter(第2版):100 个 Swift 2开发必备 Tip》这本书要解决的问题。
本书作者王巍是我非常尊敬的一位iOS开发者,他的网络ID是“onevcat”,大家都叫他喵神。王巍毕业于清华大学,在校期间就对 iOS 开发一往情深,曾经开发出《小熊推金币》《PomoDo》等一系列优秀的 iOS 游戏和应用。工作和开发之余,王巍也在参与 iOS 开发社区的建设,比如发起和组织翻译项目“objc 中国”,开源 Xcode 插件 VVDocumenter 项目等,这本《Swifter:100 个 Swift 开发必备 Tip》同样是他对社区的贡献之一。
王巍是一个在技术上对自己有要求的程序员,在涉及的每个领域,他都希望能够做到庖丁解牛,游刃有余。既能洞悉全局,又可直达细节。王巍 2014 年赴美参加了 Apple 的 WWDC大会。可以说,从 Swift 诞生的那一分钟起,王巍就开始学习和研究这门语言。他在自己的博文《行走于 Swift 的世界中》阐述了大量 Swift 的语法细节和底层实现机制,并对这篇文章进行了持续的更新,这篇文章在 Swift 社区获得了巨大的反响。之后,王巍持续学习 Swift语言,并进行了编程实践和项目实战,他把自己的学习心得和编程技巧进行了梳理和完善,最终形成了这本《Swifter:100 个 Swift 开发必备 Tip》。书中共有 100 个 Swift 编程技巧,几乎涵盖了 Swift 语言的所有细节,每篇独立成文,可拆可合,读者可以随时翻阅,也可以遇到实际问题后再来检索。
这本书最早的版本是电子书,我在它出版的第一时间就买了来读,之后随用随读,这本书让我对 Swift 语言有了更为深入的了解,也解决了我的团队在开发过程中的很多实际问题。所以,当获知王巍的这本书要出纸版的时候,我觉得我有责任让更多的人知道这本书。在目前这样一个知识版权认知匮乏的年代,优秀的原创作者总是值得尊敬,他们的图书作品也值得我们珍惜,我希望把这本书推荐给每一个 iOS 开发者,它值得我这么做。
目前王巍旅居日本,就职于即时通信软件公司 Line。他依然行走在修行的路上,孜孜以求创意之源。祝愿在未来的日子里,王巍能为这个世界呈现更好的软件产品和技术图书。落花无 Swifter(第2版):100个Swift 2 开发必备Tip 下载 mobi epub pdf txt 电子书 格式
Swifter(第2版):100个Swift 2 开发必备Tip 下载 mobi pdf epub txt 电子书 格式 2024
Swifter(第2版):100个Swift 2 开发必备Tip 下载 mobi epub pdf 电子书快出swift 3了
评分看上去很牛逼,看完再说,其他没什么想评价的,支持京东
评分活动买的书价格很优惠,有塑料膜包装无破损。入门swift
评分快出swift 3了
评分讲的挺好的,新手开始看起,哈哈
评分挺好的,还行,送货速度很快,服务一级棒!
评分我必须吐槽一下它的厚度和价格,他明明这么薄,但是这么贵。基础确实比较多,不过像我这种自学的,看着感觉还可以
评分不错的购物体验,下次还买,非常好的东西
评分不错不错不错不错不错不错
Swifter(第2版):100个Swift 2 开发必备Tip mobi epub pdf txt 电子书 格式下载 2024