Framework是一個(gè)類(lèi)庫(kù);Cocoa是三個(gè)Framework的合集室梅;Xcode是一個(gè)集成開(kāi)發(fā)環(huán)境戏仓。
庫(kù) library of code
靜態(tài)庫(kù)(.a)和動(dòng)態(tài)庫(kù)是相對(duì)編譯期和運(yùn)行期的:
靜態(tài)庫(kù)在程序編譯時(shí)會(huì)被鏈接到目標(biāo)代碼中(鏈接時(shí)完整地拷貝至可執(zhí)行文件中),程序運(yùn)行時(shí)將不再需要改靜態(tài)庫(kù)(包含在應(yīng)用中)亡鼠;而動(dòng)態(tài)庫(kù)在程序編譯時(shí)并不會(huì)被鏈接到目標(biāo)代碼中赏殃,只是在程序運(yùn)行時(shí)才被載入,因?yàn)樵诔绦蜻\(yùn)行期間還需要?jiǎng)討B(tài)庫(kù)的存在(在應(yīng)用外)间涵。
( 動(dòng)態(tài)庫(kù)鏈接時(shí)不復(fù)制仁热,程序運(yùn)行時(shí)由系統(tǒng)動(dòng)態(tài)加載到內(nèi)存,供程序調(diào)用勾哩,系統(tǒng)只加載一次抗蠢,多個(gè)程序共用.應(yīng)該叫共享庫(kù),那么從這個(gè)意義上來(lái)說(shuō)思劳,蘋(píng)果禁止iOS開(kāi)發(fā)中使用動(dòng)態(tài)庫(kù)就可以理解了:1.因?yàn)樵诂F(xiàn)在的iPhone迅矛,iPodTouch,iPad上面程序都是單進(jìn)程的敢艰,也就是某一時(shí)刻只有一個(gè)進(jìn)程在運(yùn)行. 2.沙盒封閉 )
使用庫(kù)是很麻煩的诬乞。你不僅僅需要包含庫(kù)本身册赛,還要加入所有的頭文件钠导,資源等等震嫉。蘋(píng)果解決這個(gè)問(wèn)題的方式是框架(framework)∧凳簦基本上票堵,這是含有固定結(jié)構(gòu)并包含了引用該庫(kù)時(shí)所必需的所有東西的文件夾。
系統(tǒng)的.Framework是動(dòng)態(tài)庫(kù)(蘋(píng)果只允許自己使用動(dòng)態(tài)庫(kù)) ;?自制的.Framework是靜態(tài)庫(kù)逮栅。
框架 FrameWork
FrameWork是一些類(lèi)的集合
通常是一些可能一起使用的類(lèi)集合.換句話(huà)說(shuō),這些類(lèi)被一起編譯成可復(fù)用的代碼庫(kù)(library of code)悴势。所有相關(guān)的資源和代碼庫(kù)一起放入一個(gè)帶擴(kuò)展名“.framework”的目錄(Mac OSX bundle的概念可以參考蘋(píng)果的一些文檔).系統(tǒng)自帶的framework可以在/System/Library/Frameworks找到
.a是一個(gè)純二進(jìn)制文件,.framework中除了有二進(jìn)制文件之外還有資源文件措伐。
.a文件不能直接使用特纤,至少要有.h文件配合,.framework文件可以直接使用侥加。
.a + .h + sourceFile = .framework
Cocoa
Cocoa由3個(gè)framework組成
1. Foundation: 所有的面向?qū)ο笳Z(yǔ)言都會(huì)有一些標(biāo)準(zhǔn)結(jié)構(gòu): value , collection , String, dates,lists, thread等等.所有的這些都在Foundation framework里面(可以對(duì)比C++的STL)
2. Appkit: 所有和用戶(hù)界面相關(guān)的類(lèi)都在這里. Windows,buttons,text field, event,drawing.它還有個(gè)名字: ApplicationKit
3. Core Data: Core Data可以方便的讓你把你的對(duì)象存儲(chǔ)成文件,或是從文件中加載你的對(duì)象.
Xcode
Xcode是一個(gè)集成開(kāi)發(fā)環(huán)境
掌控應(yīng)用程序中所有使用到的資源,代碼,圖片,聲音等等. 你只要在Xcode中編寫(xiě)代碼捧存,由Xcode來(lái)編譯和運(yùn)行你的程序。同時(shí)Xcode也能調(diào)用和控制調(diào)試器担败。
其中g(shù)cc作為編譯器來(lái)編譯代碼昔穴,gdb來(lái)調(diào)試。
IDE 集成開(kāi)發(fā)環(huán)境
集成開(kāi)發(fā)環(huán)境(簡(jiǎn)稱(chēng)IDE Integrated Develop Environment)是用于提供程序開(kāi)發(fā)環(huán)境的應(yīng)用程序提前,一般包括代碼編輯器吗货、編譯器、調(diào)試器和圖形用戶(hù)界面工具狈网。就是集成了代碼編寫(xiě)功能宙搬、分析功能、編譯功能孙援、調(diào)試功能等一體化的開(kāi)發(fā)軟件服務(wù)套害淤。