IOS 框架

什么是Cocoa?

? ? ? ?Cocoa不是一種編程語言(它可以運行多種編程語言)宛琅,它也不是一個開發(fā)工具(通過命令行我們?nèi)匀豢梢蚤_發(fā)Cocoa程序)胃碾,它是創(chuàng)建Mac OS X和IOS程序的原生面向?qū)ο驛PI麻削,為這兩者應(yīng)用提供了編程環(huán)境。

?? ? ? Cocoa本身是一個框架的集合铛绰,它包含了眾多子框架舞吭,其中最重要的要數(shù)“Foundation”和“UIKit”绰上。前者是框架的基礎(chǔ)旨怠,和界面無關(guān),其中包含了大量常用的API蜈块;后者是基礎(chǔ)的UI類庫鉴腻,在IOS開發(fā)中會經(jīng)常用到。

iOS開發(fā)是基于cocoa框架的百揭,主要包括5層爽哎,從上到下依次是Application,Cocoa Touch,Media,Core Services,Core OS, 其中Core Frameworks包括UIKit及Foundation分別位于Cocoa Touch層和Core Services層器一。

UIKit是UI類庫课锌。

Fundation是框架基礎(chǔ)。

其實所有的Mac OS X和IOS程序都是由大量的對象構(gòu)成祈秕,而這些對象的根對象都是NSObject产镐,NSObject就處在Foundation框架之中

1.Fundation:?

? ? ? ? ?作為通用的面向?qū)ο蟮暮瘮?shù)庫,F(xiàn)oundation提供了字符串踢步,數(shù)值的管理,容器及其枚舉丑掺,分布式計算获印,事件循環(huán),以及一些其它的與圖形用戶界面沒有直接關(guān)系的功能街州。其中用于類和常數(shù)的“NS”前綴來自于Cocoa的來源兼丰,NeXTSTEP。它可以在Mac OS X和iOS中使用唆缴。

“應(yīng)用程序工具包”鳍征,或稱AppKit(Application Kit)是直接衍生自NeXTSTEP的AppKit的。它包含了程序與圖形用戶界面交互所需的代碼面徽。它是基于Foundation建立的艳丛,也使用“NS”前綴匣掸。它只能在Mac OS X中使用。

“用戶界面工具包”氮双,或稱UIKit(User Interface Kit)碰酝,是用于iOS的圖形用戶界面工具包。與AppKit不同戴差,它使用“UI”的前綴送爸。

通常我們會將他們分為幾類:

? ? ? ? 1.值對象

? ? ? ? 2.集合

? ? ? ? 3.操作系統(tǒng)服務(wù):文件系統(tǒng)、URL暖释、進程通訊

? ? ? ? 4.通知

? ? ? ? 5.歸檔和序列化

? ? ? ? 6.表達式和條件判斷

? ? ? ? 7.Objective-C語言服務(wù)

2.Core Foundation框架

? ? ? ? Core Foundation框架 (CoreFoundation.framework) 是一組C語言接口袭厂,它們?yōu)閕OS應(yīng)用程序提供基本數(shù)據(jù)管理和服務(wù)功能。下面列舉該框架支持進行管理的數(shù)據(jù)以及可提供的服務(wù):

? ? ? ?1.群體數(shù)據(jù)類型 (數(shù)組球匕、集合等)

? ? ? ?2.程序包

? ? ? ?3.字符串管理

? ? ? ?4.日期和時間管理

? ? ? ?5.原始數(shù)據(jù)塊管理

? ? ? ?6.偏好管理

? ? ? ?7.URL及數(shù)據(jù)流操作

? ? ? ?8.線程和RunLoop

? ? ? ?9.端口和soket通訊

Core Foundation框架和Foundation框架緊密相關(guān)纹磺,它們?yōu)橄嗤δ芴峁┙涌冢獸oundation框架提供Objective-C接口谐丢。如果您將Foundation對象和Core Foundation類型摻雜使用爽航,則可利用兩個框架之間的 “toll-free bridging”。所謂的Toll-free bridging是說您可以在某個框架的方法或函數(shù)同時使用Core Foundatio和Foundation 框架中的某些類型乾忱。很多數(shù)據(jù)類型支持這一特性讥珍,其中包括群體和字符串?dāng)?shù)據(jù)類型。每個框架的類和類型描述都會對某個對象是否為 toll-free bridged窄瘟,應(yīng)和什么對象橋接進行說明衷佃。

Objective-C指針與CoreFoundation指針之間的轉(zhuǎn)換】

ARC僅管理Objective-C指針(retain、release蹄葱、autorelease)氏义,不管理CoreFoundation指針,CF指針由人工管理图云,手動的CFRetain和CFRelease來管理惯悠,注,CF中沒有autorelease竣况。

CocoaFoundation指針與CoreFoundation指針轉(zhuǎn)換克婶,需要考慮的是所指向?qū)ο笏袡?quán)的歸屬。ARC提供了3個修飾符來管理丹泉。

1. __bridge情萤,什么也不做,僅僅是轉(zhuǎn)換摹恨。此種情況下:

i). 從Cocoa轉(zhuǎn)換到Core筋岛,需要人工CFRetain,否則晒哄,Cocoa指針釋放后睁宰, 傳出去的指針則無效肪获。

ii). 從Core轉(zhuǎn)換到Cocoa,需要人工CFRelease勋陪,否則贪磺,Cocoa指針釋放后,對象引用計數(shù)仍為1诅愚,不會被銷毀寒锚。

2. __bridge_retained,轉(zhuǎn)換后自動調(diào)用CFRetain违孝,即幫助自動解決上述i的情形刹前。

3. __bridge_transfer,轉(zhuǎn)換后自動調(diào)用CFRelease雌桑,即幫助自動解決上述ii的情形喇喉。

3.Cocoa Touch框架

Cocoa Touch框架包含創(chuàng)建世界一流 iOS 應(yīng)用程序所需的所有框架,從 3D 圖形校坑、專業(yè)音頻到網(wǎng)絡(luò)拣技,甚至提供特殊設(shè)備訪問 API 以控制攝像機或從 GPS 硬件獲取位置。Cocoa Touch 既包含只需要幾行代碼就可以完成全部任務(wù)的強大的 Objective-C 框架耍目,也在需要時提供基礎(chǔ)的 C 語言 API 來直接訪問系統(tǒng)膏斤。這些框架示例包括:

? ? ? ? 1.Core Animation:通過 Core Animation,您就可以通過基于組合獨立圖層的簡單編程模型來創(chuàng)建豐富的用戶體驗邪驮。

? ? ? ? 2.Core Audio: Core Audio 是播放莫辨、處理和錄制音頻的專業(yè)級技術(shù),能夠輕松為您的應(yīng)用程序添加強大的音頻功能毅访。

? ? ? ? 3.Coce Data:Core Data 提供面向?qū)ο蟮臄?shù)據(jù)管理解決方案沮榜,該方案易于使用和理解,甚至可處理任何應(yīng)用或大或小的數(shù)據(jù)模型喻粹。

Cocoa Touch框架主要包含:UIKit蟆融,MapKit,Game Kit守呜,Message UI/Address Book UI

? ? ? ? (1) UIKit 負責(zé)啟動和結(jié)束應(yīng)用程序型酥,控制界面和多觸點事件

? ? ? ? (2)Map Kit 提供地圖的相關(guān)服務(wù),定位或者區(qū)域檢測等

? ? ? ? (3)Game Kit 創(chuàng)建和使用網(wǎng)絡(luò)機制

? ? ? ? (4)Message UI/Address Book UI 提供操作電子郵件和聯(lián)系人的信息

Foundation類層次的根是NSObject類弛饭,它(和NSObject及NSCopying協(xié)議一起)定義了基本的對象屬性和行為。NSObject是一個抽象類萍歉,該類被其他類繼承來產(chǎn)生對象侣颂。Foundation框架的剩余部分由幾組相互關(guān)聯(lián)的類和一些獨立的類組成。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末枪孩,一起剝皮案震驚了整個濱河市憔晒,隨后出現(xiàn)的幾起案子藻肄,更是在濱河造成了極大的恐慌,老刑警劉巖拒担,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嘹屯,死亡現(xiàn)場離奇詭異,居然都是意外死亡从撼,警方通過查閱死者的電腦和手機州弟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來低零,“玉大人婆翔,你說我怎么就攤上這事√蜕簦” “怎么了啃奴?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長雄妥。 經(jīng)常有香客問我最蕾,道長,這世上最難降的妖魔是什么老厌? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任瘟则,我火速辦了婚禮,結(jié)果婚禮上梅桩,老公的妹妹穿的比我還像新娘壹粟。我一直安慰自己,他們只是感情好宿百,可當(dāng)我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布趁仙。 她就那樣靜靜地躺著,像睡著了一般垦页。 火紅的嫁衣襯著肌膚如雪雀费。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天痊焊,我揣著相機與錄音盏袄,去河邊找鬼。 笑死薄啥,一個胖子當(dāng)著我的面吹牛辕羽,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播垄惧,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼刁愿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了到逊?” 一聲冷哼從身側(cè)響起铣口,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤滤钱,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后脑题,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體件缸,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年叔遂,在試婚紗的時候發(fā)現(xiàn)自己被綠了他炊。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡掏熬,死狀恐怖佑稠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情旗芬,我是刑警寧澤舌胶,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站疮丛,受9級特大地震影響幔嫂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜誊薄,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一履恩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧呢蔫,春花似錦切心、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至俏脊,卻和暖如春全谤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背爷贫。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工认然, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人漫萄。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓卷员,卻偏偏與公主長得像,于是被迫代替她去往敵國和親腾务。 傳聞我的和親對象是個殘疾皇子毕骡,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 6轉(zhuǎn)載-->>IOS框架和服務(wù) 在iOS中框架是一個目錄,包含了共享資源庫,用于訪問該資源庫中儲存的代碼的頭文件挺峡,...
    李小六_閱讀 3,598評論 2 24
  • 轉(zhuǎn)自:iOS框架和服務(wù) 框架簡介 一、什么是系統(tǒng)框架 在iOS中框架是一個目錄担钮,包含了共享資源庫橱赠,用于訪問該資源庫...
    淇濱杜隆坦閱讀 1,358評論 0 8
  • 四大部分 一.Cocoa Touch Cocoa Touch層包含創(chuàng)建 iOS應(yīng)用程序所需的關(guān)鍵框架。上至實現(xiàn)應(yīng)用...
    XMFraker閱讀 3,352評論 2 11
  • 對于 iOS 框架的一些簡單介紹 (顏色表示常用程度) Cocoa Touch GameKit 實現(xiàn)對游戲中心的支...
    飛奔的羊閱讀 873評論 0 3
  • 很久之前就想寫點什么東西,感覺總是很浮燥不夠成熟,從今起為了走向自建靜態(tài)庫(.a 或者第三方framework,雖...
    弒神指閱讀 423評論 0 1