一、什么是cocoa和cocoa Touchios
1、Cocoa
Cocoa是一種為Mac OS X應用程序提供豐富用戶體驗的框架,實際上是由3個框架組成:已知數值的Foundation框架,便于使用數據庫存儲和管理數據的Core Data框架,以及Application Kit(AppKit)框架。AppKit框架提供了與窗口、按鈕、列表等相關的類。使用示意圖來說明最頂層應用程序與底層硬件之間的各個層次。
程序與底層硬件的層次
(1)內核以設備驅動程序的形式提供與硬件的底層通信。它負責管理系統資源,包括調度需要執行的程序、管理內存和電源,以及執行基本的I/O操作。
(2)核心服務提供的支持比它上面的層次更加”核心“。例如,提供對集合、網絡、調試、文件管理、文件夾、內存管理、線程、時間合電源的管理。
(3)應用服務層包含打印和圖形渲染的支持,包括Quartz、OpenGL和Quicktime。
(4)Cocoa層位于應用程序之下。如圖所示,Cocoa包括Foundation、Core Data和AppKit框架。Foundation框架提供處理集合、字符串、內存管理、文件系統、存檔等相關的類。AppKit框架提供管理視圖、窗口、文檔和使Mac OS X聞名于世的多用戶界面相關的類。
根據上面的描述,有些層的功能似乎有重復。Cocoa層和核心服務層中都存在集合。然而。后者是前者的基礎。此外,某些情形也可以繞過或者”橋接“到某一層。例如Foundatio中有些類,比如處理文件系統的那些類直接依賴核心服務層的功能,實際上繞過了應用程序服務層。
2、Cocoa Touch
Cocoa框架應用與Mac OS X桌面與筆記本電腦應用程序的開發,而Cocoa Touch框架應用與iOS設備上應用程序的開發。Cocoa和Cocoa Touch都有Foundation和Core Data框架,然而在Cocoa Touch下,UIKit代替了AppKit框架,提供了很多相同的類型的對象支持、比如窗口、視圖、按鈕、文本域等。另外,Cocoa Touch還提供使用陀螺儀和加速器(它與GPS和?WIFI?信號一樣都能跟蹤你的位置)的類和觸摸式界面,去掉了不需要的類。
Cocoa Touch 框架推動了iOS應用開發,為開發者提供了很多 Mac 平臺上久經考驗的模式,同時又特別專注于基于觸摸的開發接口和性能優化。
大部分Cocoa Touch的功能是用Objective-C實現的,其中,UIKit 提供了開發 iOS 上的圖形化事件驅動程序所需的基本工具。UIKit 基于 Foundation 框架,該框架同樣存在于 Mac OS X 系統中,提供了文件處理、網絡、字符串處理以及其他基礎架構。除了UIKit之外,Cocoa Touch 包含創建世界優異 iOS 應用程序所需的所有框架,從 3D 圖形、專業音頻到網絡,甚至提供特殊設備訪問 API 以控制攝像機或從 GPS 硬件獲取位置。Cocoa Touch 既包含只需要幾行代碼就可以完成全部任務的強大的 Objective-C 框架,也在需要時提供基礎的 C 語言 API 來直接訪問系統。這些框架示例包括:
‘Core Animation’:通過 ‘Core Animation’,
您就可以通過基于組合獨立圖層的簡單編程模型來創建豐富的用戶體驗。
‘Core Audio:Core Audio’是播放、處理和錄制音頻的專業級技術,
能夠輕松為您的應用程序添加強大的音頻功能。
‘Core Data:Core Data’ 提供面向對象的數據管理解決方案,
該方案易于使用和理解,甚至可處理任何應用或大或小的數據模型。’
Cocoa Touch框架還提供兩種內存管理方式,一種自動內存計數ARC(Automatic Reference Counting ),另一種手動引用技術(manual reference counting)。對于后一種需要程序員自己retain和release,其原則是“責任落實”,誰創建了對象(或保留了以創建的對象),誰就是該對象的擁有方,不再使用時,則要負責釋放該所有權。
延伸閱讀:
二、 cocoa與cocoa Touch區別之分
兩者都包含OC運行時的兩個核心框架;
cocoa包含Foundation和AppKit框架,可用于開發Mac OS X系統的應用程序
cocoa touch包含Foundation和UIKit框架,可用于開發iPhone OS 系統的應用程序;
Cocoa是Mac OS X的開發環境,cocoa Touch是Iphone OS的開發環境。