Cocoa基礎架構是本文要介紹的主要內容,Cocoa/cocoa touch架構是Mac/IOS上目前最流行的架構。優點我就不多說了,主要講一下從Linux命令列程式員轉變過來的程式員要如何入門。
1、以前在linux命令列下寫代碼的時候,只需要知道幾個系統調用,libc的庫函數,就可以自己隨心所欲的寫代碼來完成需要的功能。但在cocoa下就不行,他們是自包含,能夠完整啟動並執行代碼,咱們一行代碼都不加,他們也能正常運行。
也就說在cocoa下,程式的主架構是定死了的,不能由程式員修改,程式員需要做的,就是在cocoa指定的地方加上“hook”,只有在這些hook上加上我們自己的代碼,這樣cocoa架構才能調用我們自己的代碼,來實現各種各樣的功能。cocoa編程實際是一個在為cocoa架構添磚加瓦的過程。
2、在圖形介面下編程,引入了新的概念,叫design pattern,名字很抽象,但具體點來說,就是為瞭解決某種問題,而創造的一種編程方式。比如cocoa下很重要的有MVC,delegate, target-action等模式,這些模式都是為瞭解決某類編程問題,比如MVC這種設計模式,是為瞭解決圖形化編程的時候,讓class的設計更清晰,delegate是為了方便擴充一種控制類controller class)的一種設計模式。
這樣說可能難以理解,如果熟悉了cocoa的教程再回過頭來看,就會發現理解各種design pattern是理解cocoa的關鍵,因為這些design patter解釋了在哪裡添加自己的代碼以及為什麼要再那裡添加代碼。
3、在cocoa架構下,程式的驅動是各種訊息,也就是程式的唯一目的就是為了響應處理系統或使用者對介面的操作產生的訊息。訊息傳遞的路徑可以參考apple的cocoa fundamentals guide。那各種class是怎麼相應這些訊息的呢也就是我們的hook怎麼加到這個架構中呢)?主要有以下幾種方式
通過sub class的方式擴充view控制項,重載或添加新的訊息響應函數
通過delegate擴充view控制項,因為view獲得訊息以後,都會把訊息還遞給自己的delegate notification centers等
4、開發mac/ios程式一般使用xcode+interface builder來做的,這兩個程式是什麼關係呢?簡單的說,xcode是原始碼編輯環境,而interface builder是運行時的編輯器。為什麼這麼說呢,回憶一下咱們編程都時在幹什嗎?定義對象模版聲明class)+產生對象+處理對象之間的關係。
這些動作在xcode環境中都是可以通過敲代碼的方式完成的,那麼為什麼還需要用interface builder呢?interface builder實際上時用來完成後兩項任務的,也就是產生對象+處理對象之間的關係。interface build處理這兩項任務有天然的優勢,就是可以用圖形化拖拽的方式來完成。所以用它來建立程式的介面涉及到的對象直觀又方便。
cocoa架構方面的入門知識就是這些,掌握呢這些東西以後,其他的就需要去學習cocoa提供的class,並思考怎麼組合這些class來完成自己的工作,就是一個搭積木的過程。
小結:詳解Mac OS Cocoa基礎架構的內容介紹完了,希望本文對你有所協助!