轉載於:http://ourcoders.com/thread/show/117/程序員
一直想寫這麼一個東西,長期以來我發現不少初學者的問題在於不掌握學習的方法,因此,Xcode那麼好的SDK文檔擺在那裏,對他們也起不到什麼太大的做用。從論壇、微博等等地方看到的初學者提出的問題,也暴露出他們不知道不少他們的疑惑其實在文檔裏面寫的很是清楚。而有時候當他們想從文檔去找解決方案的時候,也每每找不到。或者有些人意識到了,閱讀文檔是學習的好辦法,可是不得要領。編程
中國的技術社區有一個很沒意思的毛病,就是技術深了,看不懂罵不知所云,技術淺了,看得懂罵沒有技術含量。不過管那麼孫子作啥,對於如今可能還不知道怎麼閱讀文檔的人,但願這篇文章有所教益吧。安全
如上圖,打開後,整個文檔界面有左面的側欄和右面的內容區域構成。左面的側欄能夠選擇不一樣的文檔庫。你的Xcode裏面通常來講有一組不一樣版本的iOS文檔庫、一組不一樣版本的OS X文檔庫,以及一個Xcode文檔庫。網絡
若是你這裏沒有你要查看的文檔庫,你能夠選擇Xcode的Preferences菜單,而後選擇Downloads -> Documentation。在這裏能夠看到已經下載安裝了的文檔庫,尚未下載的文檔庫,能夠酌情選擇。以下圖:架構
而後咱們看,文檔內容區域的左側導航區域,這裏揭示了文檔庫的結構。以下圖:框架
首先是,Resource Types,也就是資源類型。文檔庫裏面所有的文檔都是這幾個類型中的一個:異步
總結一下,這裏面的Reference、Release Notes、Sample Code、Technical Notes、Technical Q&A,通常來講只是備查的。主要要看的是Getting Started和Guides。編輯器
而後下面是Topics,也就是話題,被分爲:ide
這裏很少說,大多數都是顧名思義的問題。可是值得一提的就是有不少初學者說,我想好好了解下圖形和動畫的技術,可是文檔裏面找不到,這就只能說,你睜着大大的眼睛,爲毛左看右看看不到呢?函數
最下面是Frameworks(框架),分爲:
這裏咱們先不討論這個東西,後面會仔細講。
整體來講左邊的導航區域就是用三種不一樣的維度,來幫你精準定位你須要的內容。
如今咱們看內容區域的右邊。注意上面的文檔過濾器。以下圖:
假設,你如今想看關於性能方面的Guides,那麼你應該作的就是在左面的導航,點擊Topics -> Performance,而後在右邊的文檔過濾器上面輸入Guides。或者你也能夠在左邊的導航,點擊 Resource Types -> Guides,而後在文檔過濾器裏面輸入 Performance。
熟練使用導航和文檔過濾器的話,學習就會很是方便快捷。
前面咱們講Xcode的文檔結構是在介紹如何可以快速定位到你要找的內容。可是不少人的問題多是一開始就根本不知道要讀什麼。
這裏咱們就介紹自學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裏面別的文檔講的內容雖然不一樣,可是結構你已經很清楚了,你學習起來很方便。
閱讀本文的目的和檢測標準是,遇到問題,知道看什麼文檔,想提高本身技術的時候,知道按照什麼脈絡本身組織閱讀。
最快捷的查詢幫助文檔的方法是不須要鍵入任何關鍵詞的。你只須要在Xcode代碼編輯器裏,按住Option鍵,而後點擊你想查詢的關鍵詞,就會得到關鍵詞的幫助信息。以下圖:
幫助信息會包括,一些簡單的描述、哪一個iOS操做系統開始提供,頭文件,參考文檔。頭文件和參考文檔是能夠直接點擊的。
即便你點擊的關鍵字不是Cocoa庫的內容,是本身代碼裏面的類或者方法,也能夠得到相關的定義信息。以下圖:
與之相關的熱鍵是Command鍵加鼠標點擊,便可跳到任何一個類名或者方法名的所定義的頭文件。
快速查詢幫助的另一個方法是直接打開Quick Help欄,以下圖,首先找到「右側欄開關」,而後找到「Quick Help」開關便可打開。
Quick Help欄的做用機制是,只要它在打開狀態,只要輸入光標在什麼關鍵字上,Quick Help欄就會顯示跟關鍵字相關的簡要幫助信息,跟Option鍵加點擊的信息基本一致,但可能略微豐富一點。
寫代碼的時候,在大多數狀況下,查詢下快速幫助,看看頭文件,就足以了。
文檔閱讀界面最左面的上端的放大鏡按鈕就是搜索界面。下圖是咱們搜索uiimage,獲得的搜索結果。
首先值得注意的是,結果也是分類的,分爲Reference、System Guides、Tools Guides、Sample Code這四類。類別很利於咱們快速找到咱們須要的信息。前面已經介紹過類別,跟那個基本一致,參照便可。
另外須要注意的是,搜索框下面的選項,首先是Hits Must(什麼樣的結果纔會命中),包含了三項:
而後是Languages(語言選項),包含Javascript、C++、Java、Objective-C、C語言。
而後是,Find in(在哪些文檔庫搜索),包含了你Xcode裏面安裝的所有文檔庫。
最後,咱們簡單介紹下怎麼閱讀文檔。文檔的閱讀界面以下圖:
值得注意的是,標題下面這幾樣:
在其次一個很重要的東西,實際上是標題上面那一條窄窄的導航欄,那是一個多層樹狀導航欄,看文檔的時候,能夠點擊那個欄的不一樣位置瀏覽。
其實這個欄包含了整個文檔庫的組織結構樹狀圖,惋惜只有在這個界面才能瀏覽。有興趣的能夠慢慢瀏覽,裏面信息量其實很是大。