蘋果Xcode協助文檔閱讀指南

來源:互聯網
上載者:User

標籤:

轉自:http://www.kuqin.com/shuoit/20130825/334893.html

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

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

Xcode文檔的結構

如,開啟後,整個文檔介面有左面的側欄和右面的內容地區構成。左面的側欄可以選擇不同的文件庫。你的Xcode裡面一般來說有一組不同版本的iOS文件庫、一組不同版本的OS X文件庫,以及一個Xcode文件庫。

如果你這裡沒有你要查看的文件庫,你可以選擇Xcode的Preferences菜單,然後選擇Downloads -> Documentation。在這裡可以看到已經下載安裝了的文件庫,還沒有下載的文件庫,可以酌情選擇。如:

然後我們看,文檔內容地區的左側導航地區,這裡揭示了文件庫的結構。如:

首先是,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,也就是話題,被分為:

  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

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

總體來說左邊的導航地區就是用三種不同的維度,來幫你精準定位你需要的內容。

現在我們看內容地區的右邊。注意上面的文檔過濾器。如:

假設,你現在想看關於效能方面的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鍵,然後點擊你想查詢的關鍵詞,就會獲得關鍵詞的協助資訊。如:

協助資訊會包括,一些簡單的描述、哪個iOS作業系統開始提供,標頭檔,參考文檔。標頭檔和參考文檔是可以直接點擊的。

即使你點擊的關鍵字不是Cocoa庫的內容,是自己代碼裡面的類或者方法,也可以獲得相關的定義資訊。如:

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

快速查詢協助的另外一個方法是直接開啟Quick Help欄,如,首先找到“右側欄開關”,然後找到“Quick Help”開關即可開啟。

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

寫代碼的時候,在大多數情況下,查詢下快速協助,看看標頭檔,就足以了。

搜尋協助

文檔閱讀介面最左面的上端的放大鏡按鈕就是搜尋介面。是我們搜尋uiimage,得到的搜尋結果。

首先值得注意的是,結果也是分類的,分為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裡面安裝的全部文件庫。

閱讀文檔

最後,我們簡單介紹下怎麼閱讀文檔。文檔的閱讀介面如:

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

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

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

其實這個欄包含了整個文件庫的組織圖樹狀圖,可惜只有在這個介面才能瀏覽。有興趣的可以慢慢瀏覽,裡面資訊量其實非常大。

蘋果Xcode協助文檔閱讀指南

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.