√ 絕*僅有基于Swift 2的iOS開(kāi)發(fā)圖書(shū)
√ 比肩微信之Line大牛暢銷(xiāo)書(shū)全新升級
√ 包羅萬(wàn)象、薈萃精華的實(shí)戰技巧大全
√ 基于新版重寫(xiě)案例|Tip含金量繼續攀升
Swift的易學(xué)難精體現在其實(shí)際項目暗坑無(wú)數,需要同時(shí)具備知識、技巧和經(jīng)驗的一定儲備,本書(shū)試圖讓你快速到達這一境界;作者onevcat親赴WWDC見(jiàn)證Swift發(fā)布,是全球頭撥研究和實(shí)踐者,對Swift的理解和運用,既能洞悉全局,又可直達細節;100個(gè)Swift編程技巧,涵蓋方方面面,每個(gè)Tip獨立成文,可拆可合,順序閱讀、按需翻閱或應急速查皆宜;面向中高級開(kāi)發(fā)人員,充滿(mǎn)獨到見(jiàn)解,徹底脫離官方文檔,入門(mén)者可用來(lái)迅速提升實(shí)踐能力。
本書(shū)基于Swift版本Swift 2,是目前僅有的一本基于新版的書(shū)籍。Swift的易學(xué)難精體現在其實(shí)際項目暗坑無(wú)數,需要同時(shí)具備知識、技巧和經(jīng)驗的一定儲備,本書(shū)試圖讓你快速到達這一境界。本書(shū)onevcat親赴WWDC見(jiàn)證Swift發(fā)布,是全球第一批研究和實(shí)踐者。對Swift的理解和運用,既能洞悉全局,又可直達細節。100個(gè)Swift編程技巧,涵蓋方方面面。每個(gè)Tip獨立成文,可拆可合,順序閱讀、按需翻閱或應急速查皆宜。面向中高級開(kāi)發(fā)人員,充滿(mǎn)獨到見(jiàn)解,徹底脫離官方文檔,入門(mén)者可用來(lái)迅速提升實(shí)踐能力。
王巍 (onevcat) ,是來(lái)自中國的一線(xiàn) iOS 開(kāi)發(fā)者,畢業(yè)于清華大學(xué)。在校期間就開(kāi)始進(jìn)行 iOS 開(kāi)發(fā),擁有豐富的 Cocoa 和 Objective-C 開(kāi)發(fā)經(jīng)驗,另外他也活躍于使用 C# 的 Unity3D 游戲開(kāi)發(fā)界。曾經(jīng)開(kāi)發(fā)了《小熊推金幣》,《Pomo Do》等一系列優(yōu)秀的 iOS 游戲和應用。在業(yè)余時(shí)間,王巍會(huì )在 OneV's Den 撰寫(xiě)博客,分享他在開(kāi)發(fā)中的一些心得和體會(huì )。另外,王巍還是翻譯項目 objc 中國的組織者和管理者,為中國的 Objective-C 社區的發(fā)展做出了貢獻。同時(shí),他也很喜歡為開(kāi)源社區貢獻代碼,是著(zhù)名的 Xcode 插件 VVDocumenter 的作者?,F在王巍旅居日本,并就職于即時(shí)通訊軟件公司 Line,從事 iOS 開(kāi)發(fā)工作,致力于為全世界帶來(lái)更好體驗和功能的應用。
再版序 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. 多類(lèi)型和容器 54
Tip 23. default 參數 57
Tip 24. 正則表達式 59
Tip 25. 模式匹配 62
Tip 26. … 和..< 65
Tip 27. AnyClass、元類(lèi)型和.self 67
Tip 28. 接口和類(lèi)方法中的 Self 70
Tip 29. 動(dòng)態(tài)類(lèi)型和多方法 73
Tip 30. 屬性觀(guān)察 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. 實(shí)例方法的動(dòng)態(tài)調用 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. 值類(lèi)型和引用類(lèi)型 130
Tip 51. String 還是 NSString 132
Tip 52. UnsafePointer 134
Tip 53. C 指針內存管理 137
Tip 54. COpaquePointer 和 C convention 139
Tip 55. GCD 和延時(shí)調用 141
Tip 56. 獲取對象類(lèi)型 145
Tip 57. 自省 147
Tip 58. KVO 149
Tip 59. 局部 scope 152
Tip 60. 判等 155
Tip 61. 哈希 158
Tip 62. 類(lèi)簇 160
Tip 63. Swizzle 162
Tip 64. 調用 C 動(dòng)態(tài)庫 165
Tip 65. 輸出格式化 167
Tip 66. Options 169
Tip 67. 數組 enumerate 171
Tip 68. 類(lèi)型編碼 @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 與開(kāi)發(fā)環(huán)境及一些實(shí)踐 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 延時(shí)運行 212
Tip 83. Playground 可視化 214
Tip 84. Playground 與項目協(xié)作 216
Tip 85. 數學(xué)和數字 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. 屬性訪(fǎng)問(wèn)控制 234
Tip 94. Swift 中的測試 236
Tip 95. Core Data 238
Tip 96. 閉包歧義 240
Tip 97. 泛型擴展 244
Tip 98. 兼容性 246
Tip 99. 列舉 enum 類(lèi)型 248
Tip 100. 尾遞歸 251
后記及致謝 253