蘋果Xcode幫助文檔閱讀指南

轉載於:http://ourcoders.com/thread/show/117/程序員

一直想寫這麼一個東西,長期以來我發現不少初學者的問題在於不掌握學習的方法,因此,Xcode那麼好的SDK文檔擺在那裏,對他們也起不到什麼太大的做用。從論壇、微博等等地方看到的初學者提出的問題,也暴露出他們不知道不少他們的疑惑其實在文檔裏面寫的很是清楚。而有時候當他們想從文檔去找解決方案的時候,也每每找不到。或者有些人意識到了,閱讀文檔是學習的好辦法,可是不得要領編程

中國的技術社區有一個很沒意思的毛病,就是技術深了,看不懂罵不知所云,技術淺了,看得懂罵沒有技術含量。不過管那麼孫子作啥,對於如今可能還不知道怎麼閱讀文檔的人,但願這篇文章有所教益吧。安全

Xcode文檔的結構

image

如上圖,打開後,整個文檔界面有左面的側欄和右面的內容區域構成。左面的側欄能夠選擇不一樣的文檔庫。你的Xcode裏面通常來講有一組不一樣版本的iOS文檔庫、一組不一樣版本的OS X文檔庫,以及一個Xcode文檔庫。網絡

若是你這裏沒有你要查看的文檔庫,你能夠選擇Xcode的Preferences菜單,而後選擇Downloads -> Documentation。在這裏能夠看到已經下載安裝了的文檔庫,尚未下載的文檔庫,能夠酌情選擇。以下圖:架構

image

而後咱們看,文檔內容區域的左側導航區域,這裏揭示了文檔庫的結構。以下圖:框架

image

首先是,Resource Types,也就是資源類型。文檔庫裏面所有的文檔都是這幾個類型中的一個:異步

  1. Getting Started —— 新手入門,通常來講,是給徹底的新手看的。建議初學者看看,這裏面有一些創建觀念的東西,有了這些創建觀念的東西,後面的學習就比較容易了。
  2. Guides —— 指南,指南是Xcode裏面最酷最好的部分,學會看指南則大多數狀況徹底不用買書。Xcode文檔裏面的指南,就是一個一個問題的,從一個問題,或者系統的一個方面出發,一步一步詳細介紹怎麼使用Cocoa庫的文檔。通常程序員比較熟悉的是Reference,就是你查某個類、方法、函數的文檔時候,冒出來的東西。那些實際上是一點一點的細碎知識,光看那些東西就徹底沒有脈絡。而Guides就是幫你整理好的學習的脈絡。
  3. Reference —— 參考資料。一個一個框架一個一個類組織起來的文檔,包含了每一個方法的使用方法。
  4. Release Notes —— 發佈說明。一個iOS新版本帶來了哪些新特性,這樣的信息,熟悉新iOS,比較不一樣iOS版本API不一樣,都須要參考這些文檔。
  5. Sample Code —— 示例代碼。蘋果官方提供的一些示例代碼,幫助你學習某些技術某些API。很是強烈建議學習的時候參考,一方面光看文檔有時候仍是很難弄明白具體實現是怎麼回事兒。另一方面這些示例代碼都是蘋果的工程師寫的,你從示例代碼的變遷能夠看到蘋果官方推薦的代碼風格流變。
  6. Technical Notes —— 技術說明。一些技術主題文章,有空的時候能夠瀏覽一下。每每會有一些收穫。
  7. Technical Q&A —— 常見技術問答。這是技術社區裏面一些常見問題以及回答的整理。
  8. Video —— 視頻。目前主要是WWDC的視頻,其實是登陸到開發者網站上去瀏覽的,這裏就是快捷方式。想深刻學習的話,必定不能錯過,大量的看,不只能夠學好技術,還能夠練好英文。

總結一下,這裏面的Reference、Release Notes、Sample Code、Technical Notes、Technical Q&A,通常來講只是備查的。主要要看的是Getting Started和Guides。編輯器

而後下面是Topics,也就是話題,被分爲:ide

  1. Audio & Video —— 音視頻
  2. Languages & Utilities —— 語言和工具,Objective-C的一些知識,App Store的管理工具等。
  3. Mathematical Computation —— 數學計算。
  4. Xcode
  5. Data Management —— 數據管理。
  6. General —— 通常性的問題。
  7. Graphics & Animation —— 圖形和動畫。
  8. Networking & Internet —— 網絡問題。
  9. Performance —— 性能。
  10. Security —— 安全。
  11. User Experience —— 用戶體驗。

這裏很少說,大多數都是顧名思義的問題。可是值得一提的就是有不少初學者說,我想好好了解下圖形和動畫的技術,可是文檔裏面找不到,這就只能說,你睜着大大的眼睛,爲毛左看右看看不到呢?函數

最下面是Frameworks(框架),分爲:

  1. Cocoa Touch Layer
  2. Media Layer
  3. Core Services Layer
  4. Core OS Layer

這裏咱們先不討論這個東西,後面會仔細講。

整體來講左邊的導航區域就是用三種不一樣的維度,來幫你精準定位你須要的內容。

如今咱們看內容區域的右邊。注意上面的文檔過濾器。以下圖:

image

假設,你如今想看關於性能方面的Guides,那麼你應該作的就是在左面的導航,點擊Topics -> Performance,而後在右邊的文檔過濾器上面輸入Guides。或者你也能夠在左邊的導航,點擊 Resource Types -> Guides,而後在文檔過濾器裏面輸入 Performance。

熟練使用導航和文檔過濾器的話,學習就會很是方便快捷。


文檔導讀

前面咱們講Xcode的文檔結構是在介紹如何可以快速定位到你要找的內容。可是不少人的問題多是一開始就根本不知道要讀什麼。

這裏咱們就介紹自學iOS開發應該遵循或者說咱們推薦的必讀文檔的閱讀順序。

閱讀順序:

  1. 《立刻着手開發 iOS 應用程序 (Start Developing iOS Apps Today)》
  2. 《Your First iOS App》
  3. 《Your Second iOS App: Storyboards》
  4. 《Your Third iOS App: iCloud》
  5. 《iOS Technology Overview》
  6. 《iOS Human Interface Guidelines》
  7. 《Learning Objective-C: A Primer》和《Programming with Objective-C》
  8. 《iOS App Programming Guide》
  9. 《View Programming Guide for iOS》和《View Controller Programming Guide for iOS》
  10. 《Table View Programming Guide for iOS》

首先應該看的是Getting Started裏面的《立刻着手開發 iOS 應用程序 (Start Developing iOS Apps Today)》(中英文版本皆有,蘋果官方的翻譯)。這個文檔講的很淺,可是是創建概念的文檔,你之後在開發裏面常常遇到的概念,在這裏都有包含,特別注意是,這個文檔看起來簡單,可是每頁下面的相關文章,不是選讀,都是必讀。

即便是不少作了iOS開發好久的同窗,其實也有不少概念上的誤解,現代程序開發愈來愈簡單,工具愈來愈強大,每每有些誤解也能夠繼續前行,可是實際上不創建紮實的基礎是很吃虧的,每每後面理解和解決一個不難解決小問題都要付出不少辛苦。

閱讀這個文檔的目的和檢測標準是,之後你看到iOS開發中的基本概念,都大體全部瞭解。

讀完《立刻着手開發 iOS 應用程序 (Start Developing iOS Apps Today)》後,應該去看Your XXX iOS App系列這個系列不是什麼很難的文章,你也沒必要着急先去學習Objective-C,學什麼C語言就更不要着急。我推薦的學習方法是有成就的逐步學習法。在學習系統體系架構、Objective-C以前,你能夠先按照文檔寫一個全天下最簡單的App,完成學習過程當中第一個里程碑。在這個過程當中不用擔憂有什麼疑問,有什麼不懂,先照着作就是。

閱讀這三個文檔的目的和檢測標準是,把這三個Demo App作出來在模擬器上跑起來。

在這個過程當中,你對開發工具的基本認識就創建起來了,也有了成就感,去了魅(就是消除了對iOS開發的神祕感)。

再往下,建議你去看《iOS Technology Overview》(iOS技術概覽),iOS不是一個技術,而是一堆技術,前一篇講到文檔導航區域的分類,框架分類的時候,我說不細講的緣由就在於此,你要作一個動畫應該用Core Animation仍是OpenGL?你要作一些文本相關操做應該用Core Text仍是什麼,就是看這裏。

學習現代的程序開發,語言和框架並重。咱們Tiny4Cocoa叫作這個名字的緣由就是,iOS/Mac開發者的表明每每就是這個Cocoa框架,就是這個SDK。大多數你所須要的功能都躺在框架裏面,你知道框架的結構,你才知道怎麼去尋找相關的技術資料。

閱讀這個文檔的目的和檢測標準是,遇到具體問題,知道應該去看哪方面的文檔。

再下來,建議閱讀的是《iOS Human Interface Guidelines》,Mac/iOS平臺雖然也是百花齊放各種程序、App都有,可是整體看來,大多數優秀App的UI看起來都和整個系統很協調。這和Windows以及不少其餘平臺徹底不一樣。這是爲何呢?

很大程度就歸功於《Human Interface Guidelines》文化,所謂Human Interface Guidelines就是用戶界面的規範,在蘋果它還專門有一個縮寫叫作HIG,是天條同樣的東西。全部的App都推薦遵循HIG,遵循了HIG,你作的東西用戶看起來就會以爲和整個系統很協調。即便是你要作一些創新的設計,你勢必會打破HIG的限制,可是你這個時候仍舊應該遵循HIG的精神。

此外,你閱讀HIG的很重要一點是瞭解整個UI結構和UE行爲的邏輯機理,這樣才能在你設計界面的時候有所依據。

閱讀這個文檔的目的和檢測標準是,看到任何一個App,你能夠知道它的任何一個UI是系統控件,仍是自定義控件,它的層次關係等等。

《Learning Objective-C: A Primer》是很是初級和簡單的入門,適合先閱讀。《Programming with Objective-C》超微複雜一點點,適合後閱讀。

通常人建議先學習語言,我反之建議先作了一個App,而後再學習語言。緣由有幾個,首先現代開發工具,每每不是用來開發控制檯程序的,上來就會有框架,光懂語言不會使用IDE,甚至可能會更麻煩。再其次就是,其實現代語言發展到了面向對象之後,庫每每比語言更復雜,更重要,或者說更多的時候,咱們是在學習庫,而不是語言,語言只是庫的一個載體。

好比,Delegate和Block等等都和Cocoa的UI異步機制關係緊密,光看代碼,這些語言元素很是難以學習,也徹底不知道其意義在哪裏。

閱讀這個文檔的目的和檢測標準是,看得懂基本的Objective-C代碼,方便後面的學習和閱讀各類示例代碼。

《iOS App Programming Guide》基本上介紹的就是開發一個App的完整流程,包括App的生命週期、休眠、激活等等,裏面介紹的細節頗多。正式開發第一個上線的App以前必看。或者開發了一個App,臨到提交前必看才文檔。

閱讀這個文檔的目的和檢測標準是,瞭解所有流程和不少細節問題。

《View Programming Guide for iOS》和《View Controller Programming Guide for iOS》很是重要。View是整個圖形界面裏面最重要的概念。全部的圖形、界面繪製都基於View。你看到的一切複雜的用戶界面,就是各類不一樣的View的組合堆疊。

View Controller是View和某種邏輯在一塊兒的組合,本質上這種組合不是必須的,可是是大大下降編程複雜度的一種設計。不少人不懂什麼是View什麼是View Controller,這樣寫起代碼來就很痛苦。

閱讀這個文檔的目的和檢測標準是,深入理解什麼是View,什麼是View Controller,理解什麼狀況用View,什麼狀況用View Controller。

UITableView是最重要的一個控件,是最經常使用的UI界面元素。在UICollectionView出現以前,大量的內容列表展現的自定義控件都是基於UITableView,好比不少書架、圖片Grid其實都是UITableView作的。

因此《Table View Programming Guide for iOS》很是重要,必定要好好閱讀。

閱讀這個文檔的目的和檢測標準是,深入理解UITableView/UITableViewController的理論和使用方法。

我推薦的必讀文檔就這麼多,仔細看的話,最多也就是今天就看完了。學習一個東西,若是有一點點耐心,有正確的方法其實不難,不是說腦子非要很聰明,大多數人均可以作到一個星期就學會iOS開發,其實就是讀完這些文檔,大多數人就會了。

就像我強調了無數次,閱讀英文文檔不難,我本身從當年看英文文檔很是吃力,必須查詞典開始,認真的看英文文檔,不會就查詞典,一個多月過去,讀英文文檔就徹底不須要查詞典了。

咱們公司主程 @sycx 老師,也說他原來英語也很很差,甚至如今英語仍舊很爛,可是看英文文檔徹底沒有問題,也就是幾個星期的認真學習之後就突破了。

其實學習iOS也如此。固然我不是說你看懂這10組文檔就不再用看別的了。而是說,若是你看懂了這10組文檔,你就從初學者,或者是雖然會寫一些程序,可是對iOS其實還不懂的狀態,變成了一個入門者。

我不但願這個文章能夠一句一句的幫你學會iOS是什麼,這個文章的目的是幫你快速入門。一旦你入門了,你再遇到問題該看什麼,你就不須要我講了,你本身就知道了。一旦入門了,你就會發現,Xcode裏面別的文檔講的內容雖然不一樣,可是結構你已經很清楚了,你學習起來很方便。

閱讀本文的目的和檢測標準是,遇到問題,知道看什麼文檔,想提高本身技術的時候,知道按照什麼脈絡本身組織閱讀。


如何查詢文檔

Quick Help

最快捷的查詢幫助文檔的方法是不須要鍵入任何關鍵詞的。你只須要在Xcode代碼編輯器裏,按住Option鍵,而後點擊你想查詢的關鍵詞,就會得到關鍵詞的幫助信息。以下圖:

image

幫助信息會包括,一些簡單的描述、哪一個iOS操做系統開始提供,頭文件,參考文檔。頭文件和參考文檔是能夠直接點擊的。

即便你點擊的關鍵字不是Cocoa庫的內容,是本身代碼裏面的類或者方法,也能夠得到相關的定義信息。以下圖:

image

與之相關的熱鍵是Command鍵加鼠標點擊,便可跳到任何一個類名或者方法名的所定義的頭文件。

快速查詢幫助的另一個方法是直接打開Quick Help欄,以下圖,首先找到「右側欄開關」,而後找到「Quick Help」開關便可打開。

image

Quick Help欄的做用機制是,只要它在打開狀態,只要輸入光標在什麼關鍵字上,Quick Help欄就會顯示跟關鍵字相關的簡要幫助信息,跟Option鍵加點擊的信息基本一致,但可能略微豐富一點。

寫代碼的時候,在大多數狀況下,查詢下快速幫助,看看頭文件,就足以了。

搜索幫助

文檔閱讀界面最左面的上端的放大鏡按鈕就是搜索界面。下圖是咱們搜索uiimage,獲得的搜索結果。

image

首先值得注意的是,結果也是分類的,分爲Reference、System Guides、Tools Guides、Sample Code這四類。類別很利於咱們快速找到咱們須要的信息。前面已經介紹過類別,跟那個基本一致,參照便可。

另外須要注意的是,搜索框下面的選項,首先是Hits Must(什麼樣的結果纔會命中),包含了三項:

  1. contain search term 這是最多見的就是結果包含搜索詞
  2. start with search term 由搜索詞開始
  3. match search term 必須徹底匹配搜索詞

而後是Languages(語言選項),包含Javascript、C++、Java、Objective-C、C語言。

而後是,Find in(在哪些文檔庫搜索),包含了你Xcode裏面安裝的所有文檔庫。

閱讀文檔

最後,咱們簡單介紹下怎麼閱讀文檔。文檔的閱讀界面以下圖:

image

值得注意的是,標題下面這幾樣:

  1. Inherits from 繼承關係,繼承自
  2. Conforms to 遵循什麼協議
  3. Framework 屬於什麼框架
  4. Availability 從什麼iOS版本開始支持
  5. Declared in 頭文件
  6. Related sample code 相關例子代碼
  7. Companion guide 相關的指南(UIImage沒有,不少其餘的類有)

在其次一個很重要的東西,實際上是標題上面那一條窄窄的導航欄,那是一個多層樹狀導航欄,看文檔的時候,能夠點擊那個欄的不一樣位置瀏覽。

其實這個欄包含了整個文檔庫的組織結構樹狀圖,惋惜只有在這個界面才能瀏覽。有興趣的能夠慢慢瀏覽,裏面信息量其實很是大。

相關文章
相關標籤/搜索