什麼是Cocoa?程序員
NeXTSTEP(以Unix做爲內核的操做系統)內置的許多庫(libraries)和工具,讓程序員以一種優雅的方式與窗口管理器進行交互,這些libraries叫作Framework,在1993年這些frameworks和工具被從新修改並重命名爲 OpenStep,後來被重命名爲Cocoa(你們應該知道爲何Cocoa的類都有着NS的前綴了吧)編程
那麼這些libraries是什麼呢?編程語言
一般是一些可能一塊兒使用的類集合,這些類被一塊兒編譯成可複用的代碼庫(libraries)編輯器
什麼是Xcode?函數
Cocoa開發用到的全部工具都做爲Mac OS X Developer Tool的一部分一塊兒提供給用戶,你能夠從Mac OS X安裝盤中免費的獲得它們。雖然Mac OS X Developer Tool將會在你的系統中添加許多有用的程序。可是咱們將主要使用這兩個程序:Xcode 和 Interface Builder。而在這些IDE內部,gcc做爲編譯器來編譯代碼,gdb來調試。工具
Xcode掌控應用程序中全部使用到的資源,代碼,圖片,聲音等等.你只要在Xcode中編寫代碼,由Xcode來編譯和運行你的程序。同時Xcode也能調用和控制調試器。佈局
Interface Builder是一個GUI構建工具,經過它你能夠建立窗口布局而且把各個組件添加到窗口中,Interface Builder使程序員能方便的建立各類對象並編輯它們的屬性,這些對象多數是用戶界面元件,好比按鈕和文本輸入框,可是也能夠是你自定義的對象ui
什麼是FrameWork?編碼
FrameWork是一些類的集合,一般是一些可能一塊兒使用的類集合.換句話說,這些類被一塊兒編譯成可複用的代碼庫(library of code)。全部相關的資源和代碼庫一塊兒放入一個帶擴展名「.framework」的目錄(Mac OSX bundle 的概念能夠參考蘋果的一些文檔). 系統自帶的framework能夠在/System/Library/Frameworks找到.spa
Cocoa有3個framework組成
1. Foundation: 全部的面嚮對象語言都會有一些標準結構: value , collection , String, dates, lists, thread等等.全部的這些都在Foundation framework裏面(能夠對比C++的STL)
2. Appkit: 全部和用戶界面相關的類都在這裏. Windows,buttons,text field, event, drawing. 它還有個名字: ApplicationKit
3. Core Data: Core Data能夠方便的讓你把你的對象存儲成文件,或是從文件中加載你的對象.
固然Mac OSX 開發包還提供了其餘的不少framework. 好比QuickTime, CD 刻錄等等. 這本書咱們只關注上面提到的3個基本framework. 一旦你掌握了這些基本framework.你將會更容易理解其餘的framework.(cocoa 只是MacOSX的一個開發環境,它提供基本的開發Max OSX應用程序的SDK. 固然若是你要開發某種特定的應用,你能夠須要使用Apple提供的其餘SDK. 例如要開發播放DVD的程序.你可能會使用到DVDPlayback.framework.它甚至是C++接口的)
固然,你也能夠建立你本身的framework. 一個典型的例子,當相同的類被好幾個應用程序使用的時候.你可能會扔給他們一個framework.
小結:
Framework是一個類庫;
Cocoa是三個Framework的合集;
Xcode是一個集成開發環境。
補充小知識:
IDE 集成開發環境
較早期程序設計的各個階段都要用不一樣的軟件來進行處理,如先用字處理軟件編輯源程序,而後用連接程序進行函數、模塊鏈接,再用編譯程序進行編譯,開發者必須在幾種軟件間來回切換操做。如今的編程開發軟件將編輯、編譯、調試等功能集成在一個桌面環境中,這樣就大大方便了用戶。
集成開發環境(簡稱IDE Integrated Develop Environment )是用於提供程序開發環境的應用程序,通常包括代碼編輯器、編譯器、調試器和圖形用戶界面工具。就是集成了代碼編寫功能、分析功能、編譯功能、調試功能等一體化的開發軟件服務套。全部具有這一特性的軟件或者軟件套(組)均可以叫作集成開以環境。如微軟的Visual Studio系列,Borland的C++ Builder、Delphi系列等。該程序能夠獨立運行,也能夠和其它程序並用。例如,BASIC語言在微軟辦公軟件中可使用,能夠在微軟Word文檔中編寫WordBasic程序。IDE爲用戶使用Visual Basic、Java和PowerBuilder等現代編程語言提供了方便。 不一樣的技術體系有不一樣的IDE。好比visual studio.Net能夠稱爲C++、VB、C#等語言的集成開發環境,因此visual studio.Net能夠叫作IDE。一樣,Borland的JBuilder也是一個IDE,它是Java的IDE。zend studio、editplus、ultraedit這些,每個都具有基本的編碼、調試功能,因此每個均可以稱做IDE。
IDE有三項必須集成的基本功能:「編輯器」、「編譯/連接器」、「調試器」。還有一些更強大的功能,如:代碼提示、項目管理、界面設計、建模功能