发表于2024-11-23
Swifter(第2版):100個Swift 2 開發必備Tip pdf epub mobi txt 電子書 下載 2024
√ 絕*僅有基於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 電子書
這東西不錯的,推薦大傢
評分很劃算 也很不錯。 感覺蠻好的。 蠻實惠的的 很滿意的。 性價比很高
評分開發學習必備,希望對工作有用
評分講的挺好的,新手開始看起,哈哈
評分很棒的書,講解十分透徹清楚明白
評分應該是很有技術含量的書,看成教程瞭。還行吧,項目改用oc瞭,暫時無用瞭
評分不想看完之後感覺到的
評分書很好,很喜歡。東西很好,質量不錯。物流也很快,售後也方便很喜歡。
評分喵神的買來看看,雖然swift變太快
Swifter(第2版):100個Swift 2 開發必備Tip pdf epub mobi txt 電子書 下載