發表於2024-11-05
老碼說編程之玩轉Swift江湖 pdf epub mobi txt 電子書 下載
◆為保證Swift 語言的穩定和優良,蘋果公司先後為XCode 6 推齣瞭7 個Beta 版本,一個GM(GoldenMaster)版本,後穩定於正式版XCode 6,本書是基於當前正式版編寫的。此前沒有一本書是基於正式版編寫的。
◆不僅有Swift 基礎語法,也有iOS開發過程中眾多關鍵技術節點,如庫管理工具Cocoapods、原型設計工具Axure Pro、雲端測試工具、Cordova/Phonegap HTML5 HyberApp的入門知識、真機調試、打包上傳等。被Swift 社區的讀者們譽為“Swift 世界的地圖”。
◆5位老碼農鑽研4個月整理提煉而成,案例緊貼社會熱點,比如老碼去藍翔、鍘美案、韓劇《繼承者們》、江湖武俠、楊過、小龍女、甚至網絡紅人鳳姐、芙蓉等都相繼齣場,使大傢在嬉笑怒罵間領悟Swift 語言精髓和用法。
◆為瞭一個屬於老碼的夢,他們在本書中傾注瞭大量的精力,伴隨著XCode的每一次更新他們都要重新調整內容,改寫案例。他們較真,即使一個書中的案例都要在群裏討論老半天;他們執著,維護翻譯600多頁的文檔;他們,令人敬佩!
《老碼說編程之玩轉Swift江湖》由老碼團隊的5位資深IT工程師鑽研4個月學習整理和提煉而成,全書分為10個章節:第1~2章講述如何搭建開發環境,講解XCode 6.1的用法;第3~6章重點講述Swift的語法知識;第7章講解Swift和Objective-C之間的相互調用;最後3章通過一個完整的案例“魔法盒子”來講解如何使用Swift語言從零開始開發一款商用的App。本書在知識布局上不僅有對Swift基礎語法的講解,同時也對iOS開發過程中的眾多關鍵技術節點進行闡述,如庫管理工具Cocoapods、原型設計工具Axure Pro、雲端測試工具、Cordova/Phonegap HTML5 HyberApp的入門知識、真機調試、打包上傳等。我們旨在通過本書給讀者朋友們繪製一條我們走過且讀者朋友未來要走的路。本書被Swift社區的讀者們譽為“Swift世界的地圖”。
為瞭保證Swift語言的穩定和優良,蘋果公司先後為XCode 6推齣瞭7個Beta版本,一個GM(Golden Master)版本,最後穩定於正式版XCode 6.1,本書是基於當前全新正式版編寫的。老碼團隊在編寫本書的同時,也在持續維護翻譯《The Swift Programming Language》中文版。
《老碼說編程之玩轉Swift江湖》普遍采用詼諧、幽默、輕鬆的語言,力圖為讀者們創造一個輕鬆的學習氛圍,書中的案例緊貼社會熱點,比如老碼去藍翔、鍘美案、韓劇《繼承者們》、江湖武俠、楊過、小龍女、甚至網絡紅人鳳姐、芙蓉等都會相繼齣場,使大傢在嬉笑怒罵間領悟Swift語言精髓和用法。
★和成都IT圈有一些接觸,並且和老碼的Baelish有過幾次交流,當他把這本書的前3章草稿發到我的桌麵上時,我心裏還有些懷疑,等到閱讀瞭第1章和第2章,我恨不得趕緊打開筆記本,裝虛擬機,操作一遍。該書算得上是一本初學者的必讀課本。
——中國科學院光電研究所在讀博士姚光樂
★老王(Tyrion)說他在寫書,我隨口說:“要不要哥給你寫篇序?”結果這群老傢夥真的讓我給他們寫點啥,閱讀瞭一下樣書,拿給瞭我項目組做iOS的兄弟審閱瞭一番,得齣這樣一句話——一本可以當地圖的啓濛教材。
——東軟集團成都分公司嵌入式事業部負責人羅傳勇
★我花瞭四天的時間幫這本書做第8章、第9章和第10章的外部Review,開始有點倉促,覺得在中國寫書不必太當真,可是老碼負責人打電話說:“你的一點努力,可能就有數萬初學者受益。”從來沒有覺得這麼有正義感過。說一下我Review時的感覺:邏輯清晰,特彆是對贏利模式的總結很到位;語言幽默,雖然刻闆的我覺得有點囉嗦。所以如果你是剛入門的新手,強烈推薦本書。
——成都麥博斯移動創新有限公司CTO王天河
★做瞭這麼多年的測試,竟被閨蜜Snow喊去做試讀。花瞭一周時間通讀瞭這本“巨著”,請讓我描述一下一個程序猿的感受:整本書把語法講得跟說故事一樣,語法講解很清晰,特彆是對Swift的思想描述得很到位,後麵的開發案例講解瞭整個開發的生命周期。最後決定瞭,讓Snow送我一本,我也要轉行做iPhoneApp開發。
——成都誌投科技有限公司測試經理張燕
★從Numbbb翻譯的《SwiftProgramingLanguage》中文版網站知道瞭老碼團隊,在學習Swift時受到瞭Tyrion的很多指點,充分感受到瞭一群老工程師的嚴謹和對開源的執著:我們不用擔心去哪裏下載XCode,因為老碼雲盤裏都有;我們不用擔心Swift語言的更新,因為老碼們會及時更新Swift的更新消息;閱讀瞭這本書的前4章,我深深地被打動瞭,故事裏講述語法,案例中融會貫通。
——Swift興趣交流二群群友車冰
★剛開始覺得Tyrion挺煩的,每天發老碼團隊的微博,還曾經嘲諷他打廣告,可是後來在和他討論MutatingMethod方法應該翻譯為突變方法、變性方法還是變質方法時,我慢慢地對這群人的態度發生瞭改變:他們較真,即使一個書中的案例都要在群裏討論老半天;他們執著,維護翻譯600多頁的文檔;他們貌似很有錢,因為他們在群裏經常喊我們不要買他們的書而去看他們翻譯的Swift文檔。碼哥的書是業界良心!
——SwiftDeveloper群群友楊帆
第1章 從零搭建Swift開發環境
1.1 虛擬機安裝Mac OS
1.1.1 準備工作
1.1.2 動手吧
1.2 X86電腦安裝Mac OS
1.2.1 安裝方式簡介
1.2.2 規劃分區
1.2.3 使用硬盤助手Leopard
1.2.4 使用變色龍Chemeleon
1.2.5 使用HFS+
1.2.6 正式安裝
1.3 結語
第2章 玩轉XCode
2.1 下載與安裝XCode
2.1.1 下載XCode
2.1.2 安裝XCode
2.2 XCode之初體驗
2.2.1 歡迎界麵
2.2.2 第一個Swift程序
2.2.3 初識主界麵
2.2.4 工具欄
2.2.5 導航區域
2.2.6 編輯區域
2.2.7 調試區域
2.2.8 組件區域
2.3 XCode的調試大法
2.3.1 簡單粗暴的NSLog
2.3.2 斷點調試之LLDB
2.4 老碼的錦囊―幫助文檔
2.5 結語
第3章 Swift語法那些事兒
3.1 Swift的碑文
3.2 常量和變量
3.2.1 常量和變量的命名
3.2.2 打印常量和變量
3.3 類型標注
3.4 注釋
3.4.1 單行注釋
3.4.2 多行注釋
3.5 分號的落寞
3.6 語法屆的直性子―整型
3.7 語法屆學術範―浮點型
3.8 類型安全和類型推導
3.9 數字字麵量
3.10 數字類型的轉換
3.10.1 整型間的轉換
3.10.2 整型和浮點型間的轉換
3.11 類型彆名
3.12 布爾型
3.13 字符串和字符
3.13.1 字符串字麵量
3.13.2 字符串的創建和初始化
3.13.3 字符串和字符的連接
3.13.4 字符計數
3.13.5 字符串內插
3.13.6 比較字符串
3.14 元組
3.15 可選類型
3.15.1 If語句和強製解封可選
類型
3.15.2 可選綁定
3.15.3 隱式解封可選類型
3.16 斷言
3.17 集閤
3.17.1 集閤的可變性
3.17.2 數組的類型
3.17.3 數組字麵量
3.17.4 訪問和修改數組
3.17.5 數組遍曆
3.17.6 數組創建和初始化
3.18 字典
3.18.1 字典字麵量
3.18.2 訪問和修改字典
3.18.3 字典遍曆
3.18.4 創建空字典
3.19 結構體類型
3.19.1 基礎數據類型都是結構體
3.19.2 結構體的定義
3.20 枚舉類型
3.20.1 枚舉的定義
3.20.2 通過Switch語句匹配枚
舉的值
3.20.3 關聯值
3.20.4 原始值
3.21 結語
第4章 離不開的運算符,丟不下的
流程控
4.1 運算符的傢譜
4.2 賦值運算符
4.3 算術運算符
4.3.1 加減乘除
4.3.2 求餘運算符
4.3.3 自變運算符
4.3.4 陰陽運算符
4.4 區間運算符
4.5 邏輯運算符
4.5.1 9種邏輯運算符綜閤演練
4.5.2 三目運算符(?:)
4.5.3 空閤運算符(??)
4.5.4 特徵等於運算符(===)和
特徵不等運算符(!==)
4.6 位運算符
4.6.1 位求非(~)
4.6.2 位求與(&)
4.6.3 位求或(|)
4.6.4 位求異或(^)
4.6.5 移位操作
4.7 運算符專題
4.7.1 運算符裏的江湖等級
4.7.2 圓括號―打破江湖規矩
的利器
4.7.3 定製自己的運算符套餐
4.8 語法界的建築師
4.8.1 for語句
4.8.2 while循環
4.8.3 if判斷
4.8.4 switch分揀
4.8.5 switch中的case專題
4.9 打破控製流程的壁壘
4.9.1 continue的用法
4.9.2 break的用法
4.9.3 return的用法
4.9.4 fallthrogh的用法
4.10 結語
第5章 語法屆的高富帥之函數和閉包
5.1 寫個函數來瞧瞧
5.2 函數怎麼用
5.3 參數列錶的奧妙
5.3.1 多參數的參數列錶
5.3.2 沒有參數怎麼辦
5.3.3 誰說參數不能有名字
5.3.4 酷炫的可變參數
5.3.5 默認參數的魅力
5.3.6 當默認參數遇上可變參數
5.3.7 參數性彆是常量還是變量
5.3.8 讓我變,不管函數內外
5.4 仔細分析一下返迴值的各種情況
5.4.1 沒返迴值也行
5.4.2 一個返迴值沒問題
5.4.3 多返迴值也可以
5.5 挖挖函數的老底
5.6 函數的高級玩法
5.6.1 函數類型的變量與常量
5.6.2 函數類型作為參數
5.6.3 函數類型作為返迴值
5.7 嵌套函數
5.8 柯裏化函數
5.9 閉包―牛人的玩物
5.10 閉包錶達式很好用
5.11 簡化閉包錶達式
5.12 尾閉包
5.13 捕獲值
5.14 挖挖閉包的老底
5.15 結語
第6章 Swift之麵嚮對象
6.1 麵嚮對象的身世之謎
6.2 Swift中的OOP
6.2.1 何為類
6.2.2 何為實例
6.2.3 何為屬性
6.2.4 何為方法
6.2.5 繼承者們
6.2.6 讓我們構造一個類的實
例吧
6.2.7 析構―迴光返照時的
精彩
6.3 一根藤上三朵花:類、結構體和
枚舉
6.4 Swift內存總管―自動引用計數
(ARC)
6.4.1 強引用―霸道的關係
6.4.2 閉環與解環
6.4.3 解環妙法之弱引用
6.4.4 解環妙法之主引用
6.4.5 解環妙法之捕獲列錶
6.5 玩轉Swift的各種類型
6.5.1 可選鏈―用前就知道
是不是nil哦
6.5.2 類型檢查和轉換
6.5.3 俄羅斯娃娃―類型裏麵
還有類型
6.5.4 我們都是Swift的主人―
擴展
6.5.5 用需求規劃藍圖―協議
6.6 通用是一種美德―泛型
6.6.1 泛型函數
6.6.2 通用類型
6.6.3 類型約束
6.6.4 關聯類型
6.7 結語
……
6.2.3.5 屬性觀察器
毋庸置疑,這是Chris大牛為Swift語言提供的利器,我們先看個例子。
1. class People {
2. var name: String = """"
3. var lover: People? {
4. willSet(newLover) { // lover屬性值改變前被觸發
5. if(self.lover != nil) {
6. if(newLover != nil) {
7. println( ""(self.name) 移情彆戀瞭 (newLover!.name)"" )
8. }
9. } else {
10. if(newLover != nil) {
11. println( ""(self.name) 找到瞭糟糠之妻 (newLover!.name)"" )
12. }
13. }
14. }
15. didSet( oldLover ) { // lover屬性改變後被觸發
16. if (oldLover != nil) {
17. println( ""(self.name) 狠心地離開瞭 (oldLover!.name)"" )
18. }
19. }
20. }
21. }
22. var man = People()
23. man.name = ""陳世美""
24.
25. let lover1 = People()
26. lover1.name = ""秦香蓮""
27.
28. let lover2 = People()
29. lover2.name = ""大宋公主""
30.
31. man.lover = lover1
32. man.lover = lover2
結果如下:
1. 陳世美 找到瞭糟糠之妻 秦香蓮
2. 陳世美 移情彆戀瞭 大宋公主
3. 陳世美 狠心地離開瞭 秦香蓮
以上我們用大宋年間淒美的愛情劇《鍘美案》中的橋段說明瞭如何在類中使用屬性觀察器,注意以下解釋。
屬性觀察器分為兩種:willSet(屬性值改變前觸發)和didSet(屬性值改變後觸發),其格式如下。
willSet( willSetValue){//willSetValue可以用戶自己定義 },簡化格式為:willSet{ //必須使用newValue作為參數},其中,willSetValue/newValue代錶將要被使用的新值。
didSet(oldSetValue){//oldSetValue可以用戶自己定義 },簡化格式為:didSet{ //必須使用oldValue作為參數},其中,oldSetValue/oldValue代錶已被替換的舊值。
屬性觀察器不能用在惰性存儲屬性上,道理很簡單,因為惰性存儲屬性是根據需要産生的,所以無法確定觀察有效期,從Swift語義嚴謹的角度,是不應被支持的。
對於可以重寫的屬性,可以在其子類中增加觀察器,但是對於非重寫屬性則沒有必要,因為可以在其賦值訪問器中觸發觀察的行為。
小夥伴們,務必認真理解這兩個觀察器,它們的意義非凡,如果你學過Objective-C,則對KVO模式不陌生,所謂KVO,就是Key-Value-Observing的簡稱。簡單地講,就是你可以為一個值綁定一個迴調函數,如果這個值變化,這個迴調函數就會被觸發。這完全就是上麵講的屬性觀察器的功能,這也是所謂的“觀察者”模式的體現。在我們未來做iOS開發的日子裏,經常希望通過一個值的改變,觸發某種行為。例如,如果老碼的書銷量超過10萬本,老碼就請小夥伴吃碗蛋炒飯,那麼我們就可以使用屬性觀察器來實現。
屬性觀察器同樣可用於全局變量和本地變量。何為全局變量,指不包含在任何自定義的作用域裏的變量,比如不包含在函數、類、枚舉、結構體中的變量,反之則是本地變量。切記全局變量永遠是省略lazy的惰性計算變量,而本地變量不是。小夥伴很迷糊,怎麼又多瞭個“惰性計算”概念呢?切記這是為全局變量獨有的,其意思:既是惰性,又是可計算的。惰性是為瞭提高全局變量使用的效率,用的時候再初始化,而不是一開始就初始化;可計算是因為全局變量沒有初始化函
老碼說編程之玩轉Swift江湖 下載 mobi epub pdf txt 電子書
沒有時間看,書的內容寫的還是不錯的,不過要有oc基礎哦
評分好好學習,天天看看唄
評分一本詼諧有趣的swift入門書,怎麼說呢,有自己的想法,但是都講的不太深。感覺目前還是oj更加大眾一些
評分包裝還行 過幾天看瞭再評
評分內容比較實用,看得齣是比較有經驗的人所作,不足之處是一些插圖的繪製實在是比較粗糙
評分一本詼諧有趣的swift入門書,怎麼說呢,有自己的想法,但是都講的不太深。感覺目前還是oj更加大眾一些
評分不錯啊12345678
評分 評分好東西,還沒看,過幾天深入學習
老碼說編程之玩轉Swift江湖 pdf epub mobi txt 電子書 下載