前 言
iOS的流行將許多程序員吸引到Apple公司的平臺。很長時間以來,OS X和iOS上的軟件都是用Objective-C編寫的,這門語言是在20世紀80年代開發的,它非常適合被描述為C和Smalltalk的混合體。Objective-C缺乏現代程序員期盼的許多編程語言特性。近十年來,Apple一直在調整和改進Objective-C,但許多程序員仍然覺得它是一門外星語言。
Swift是一門現代編程語言,在建立該語言時使用了近30年來在編程語言研究領域獲得的成果。開發該語言的研究者還開發了clang,它是Apple用來構建OS X和iOS軟件的現代編譯器工具鏈。Swift包含了許多現代編程語言應該具有的特性。它支持一個強類型系統來避免在C和Objective-C編程中普遍存在的許多錯誤。它還提供一個精煉的支持靜態和可計算屬性的類系統。它支持閉包,并將函數視為一級類對象,從而可將它們保存到變量或作為參數傳遞給函數和方法。在閱讀本書時,你還會繼續發現Swift提供的許多高級特性。
Swift經過了重新設計,從而成為一種適合在Apple平臺上進行系統開發和應用程序開發的現代編程語言。Apple已經為Swift提供了大量支持,且該語言仍在不斷改進。Swift代表了iOS和OS X軟件開發的未來,在這些平臺上進行開發的程序員也期望Swift在這些系統中日益占據主導地位。
本書讀者對象
本書面向具有在OS X和iOS上開發Objective-C應用程序經驗的軟件開發者。Swift的知識和經驗雖然有用,但對于理解本書的內容來說并不是必需的。本書引入的Swift關鍵概念甚至對于高級iOS和OS X程序員來說也是陌生的。本書使用了幾個小項目來說明其引入的概念。本書還大量使用了playground,Xcode的這個新特性允許不建立整個Xcode項目就能編寫Swift代碼并與Swift代碼交互。
本書第1章主要介紹Swift的語法和語義,但沒有介紹該語言的任何高級特性。第2章介紹Xcode的使用,其中包括playground。如果已經對Swift和Xcode比較熟悉,可以跳過第1章和第2章而直接從第3章開始。
本書主要內容
本書首先對Apple于2014年6月發布的Swift編程語言做了初步介紹,然后快速移到更高級的Swift編程主題,包括Xcode中新的playground特性;類、結構和枚舉;并發編程以及Swift類型系統的高級特性。本書還介紹Swift程序員需要經常處理的實際問題,包括使用JSON與Web服務交互、Core Data以及在Swift項目中使用C和Objective-C代碼。本書還演示Xcode的一些高級特性,包括如何使用Xcode內建的調試器,并討論Swift和Objective-C運行時的底層細節。因為在OS X和iOS上編寫軟件時無法避免使用C語言,所以附錄中提供了C語言的簡要介紹。
本書結構
本書共分兩部分。第Ⅰ部分介紹了Swift編程語言和Swift程序員可能遇到的實際問題。第Ⅱ部分深入討論Swift錯綜復雜的細節。
● 第1章:回顧Swift編程語言的語法和語義。這對于那些對該語言陌生或想要快速了解該語言的程序員來說非常有用。
● 第2章:介紹Xcode中與Swift有關的變化。該章介紹Xcode的新特性playground,它提供了一種以交互方式使用Swift代碼的方法。
● 第3章:以比第1章更詳細的方式介紹Swift的類、結構和枚舉,并為Swift中的面向對象編程打下堅實基礎。
● 第4章:討論Swift上下文環境中的并發編程以及iOS和OS X中的Foundation框架。
● 第5章:演示如何使用JSON與遠程Web服務通信。
● 第6章:討論如何使用Core Data存儲和搜索程序使用的信息。
● 第7章:演示如何使用協議和類擴展來擴展類。
● 第8章:詳細介紹Swift的類型系統,并演示如何使用Swift的強類型系統來編寫錯誤更少的代碼。
● 第9章:演示如何在Swift程序中混合C和Objective-C代碼。
● 第10章:介紹調試器并演示如何跟蹤和修復代碼中的問題。
● 第11章:討論Swift和Objective-C的運行時結構,并演示程序是如何在iOS和OSX中被加載和執行的。
● 附錄A:介紹C語言引入的特性和概念。
閱讀本書的條件
若要運行本書中的例子,需要具備下列條件:
● 運行OS X 10.9或更新版本的Mac電腦。
● Xcode 6。
● 如果想要在真實設備而不是Xcode的iOS模擬器中運行本書的例子,則還需要iPhone、iPod Touch或iPad。
源代碼
可以在www.wrox.com中通過英文ISBN(本書的英文ISBN為978-1-119-01677-9)搜索本書來找到它的源代碼。Wrox當前出版的所有書籍的源代碼都可從www.wrox.com/ dynamic/books/download.aspx下載。
也可登錄www.tupwk.com.cn/downpage,輸入本書中文書名或中文ISBN,下載源代碼。注意,本書譯者針對最新版本對源代碼做了更新,更新后的代碼可從該網站下載。
www.wrox.com上的大多數源代碼都被壓縮為了.zip、.rar或類似的適合特定平臺的文檔格式。在下載源代碼后,需要使用對應的壓縮工具來解壓縮。
在下載源代碼后,可使用自己喜歡的壓縮工具來解壓縮。另外還可以進入位于www.wrox.com/dynamic/books/download.aspx處的Wrox代碼下載主頁中來查看本書和所有其他Wrox書籍的源代碼。
勘誤表
盡管我們已經盡了各種努力來保證文章或代碼中不出現錯誤,但是錯誤總是難免的,如果你在本書中找到了錯誤,例如拼寫錯誤或代碼錯誤,請告訴我們,我們將非常感激。通過勘誤表,可以讓其他讀者避免受挫,當然,這還有助于提供更高質量的信息。
要在網站上找到本書的勘誤表,可以登錄http://www.wrox.com,通過Search工具或書名列表查找本書,然后在本書的細目頁面上,單擊Book Errata鏈接。在這個頁面上可以查看Wrox編輯已提交和粘貼的所有勘誤項。完整的圖書列表還包括每本書的勘誤表,網址是www.wrox.com/misc-pages/ booklist.shtml。
如果在Book Errata頁面上沒有看到你找出的錯誤,請進入www.wrox.com/contact/ techsupport.shtml,填寫表單,發電子郵件,我們就會檢查你的信息,如果是正確的,就在本書的勘誤表中粘貼一個消息,我們將在本書的后續版本中采用。
p2p.wrox.com
P2P郵件列表是為作者和讀者之間的討論而建立的。讀者可以在p2p.wrox.com上加入P2P論壇。該論壇是一個基于Web的系統,用于傳送與Wrox圖書相關的信息和相關技術,與其他讀者和技術用戶交流。該論壇提供了訂閱功能,當論壇上有新帖子時,會給你發送你選擇的主題。Wrox作者、編輯和其他業界專家和讀者都會在這個論壇上進行討論。
在http://p2p.wrox.com上有許多不同的論壇,幫助讀者閱讀本書,在讀者開發自己的應用程序時,也可以從這個論壇中獲益。要加入這個論壇,必須執行下面的步驟:
(1) 進入p2p.wrox.com,單擊Register鏈接。
(2) 閱讀其內容,單擊Agree按鈕。
(3) 提供加入論壇所需的信息及愿意提供的可選信息,單擊Submit按鈕。
(4) 然后就可以收到一封電子郵件,其中的信息描述了如何驗證賬戶,完成加入過程。
加入論壇后,就可以發送新信息,回應其他用戶的帖子。可以隨時在Web上閱讀信息。如果希望某個論壇給自己發送新信息,可以在論壇列表中單擊該論壇對應的Subscribe to this Forum圖標。
對于如何使用Wrox P2P的更多信息,可閱讀P2P FAQ,了解論壇軟件的工作原理,以及許多針對P2P和Wrox圖書的常見問題解答。要閱讀FAQ,可以單擊任意P2P頁面上的FAQ鏈接。