關於Cocoa以及Cocoa環境介紹教程

來源:互聯網
上載者:User

Cocoa以及Cocoa環境介紹是本文要講述的內容,在Mac OS X作業系統上,Cocoa和Carbon及Java一樣,是一種應用程式環境。它由一組物件導向的軟體庫和一個運行環境組成,它的整合式開發環境和其它應用程式環境相同。本章將在這個定義的基礎上進行擴充,描述Cocoa的目標、能力、和物理形式。

Cocoa的環境

Cocoa應用程式正逐漸成為Mac OS X的應用程式標準。iPhoto、Safari、和Mail都是Cocoa應用程式。這些應用程式由於聰明的設計、豐富的功能、和激動人心的使用者介面而受到了相當程度的好評。但是,對於一般使用者來說並不明顯和典型的開發週期相比)的是:這些程式從設計階段到最終部署的過程是多麼的快速。作為應用程式開發環境,是什麼使Cocoa成為比Carbon切實可行、甚至是強制性的替代呢。

和所有的應用程式環境一樣,Cocoa包括兩個方面:即運行環境方面和開發方面。在運行環境方面,Cocoa應用程式呈現Aqua使用者介面,且和作業系統的其它可視部分緊密整合,這些部分包括Finder、Dock、和基於所有環境的其它應用程式。Cocoa無縫地成為了使用者體驗的一部分,在運行環境方面表現優秀。

但是,程式員更感興趣的是開發方面。Cocoa是一個物件導向的軟體組件—類—的整合套件,它使開發人員可以快速建立強壯和全功能的Mac OS X應用程式。這些類是可複用和可支配的軟體積木,開發人員可以直接使用,或者根據具體需求對其進行擴充。從使用介面物件到Bonjour網路,幾乎每個想象得到的開發需求都存在對應的Cocoa類;對於沒有預想到的需求,您可以輕鬆地從現有類派生出子類來實現。

在各種物件導向的開發環境中,Cocoa有著最為著名的血統。從1989年作為NeXTSTEP推出到現在,人們一直對它進行精化和測試參見"一點曆史"部分)。它優雅而強大的設計完美地適合所有類型的快速軟體開發:不僅適合開發應用程式,也適合開發命令列工具、外掛程式、和不同類型的程式包。Cocoa為您的應用程式“免費”提供很多行為和外觀,使您可以將更多的時間用於有特色的功能上有關Cocoa提供的功能的詳細資料,請參見"Cocoa應用程式的特性"部分)。

在開發Cocoa軟體的時候,您可以使用多種程式設計語言。基本的語言是Objective-C。Objective-C擁有自己的Cocoa運行環境,是ANSI C的超集,它在ANSI C的文法和語義特性上從Smalltalk派生而來)進行擴充,使之支援物件導向的編程。新增的規則簡單而又易於學習和使用。由於Objective-C是基於ANSI C的,您可以自由地將C代碼直接和Objective-C代碼混合在一起。而且,您的代碼可以調用非Cocoa的編程介面中定義的所有函數,比如Carbon和BSD。您甚至可以將C++代碼混合到Cocoa代碼中,並將它們串連在同一個執行檔案中。最後,Cocoa支援Java。Cocoa為此定義了一個平行的Java類庫,並且實現了一個將Java介面映射到Objective-C實現的橋機制。Cocoa的Java支援使您可以將本地的Java對象和Cocoa對象混合在一起使用在某些限制下)

重要訊息:Cocoa-Java是熟悉Java語言的開發人員的學習環境,我們並不推薦將它用於產品開發。Objective-C API會不斷進化,而Cocoa-Java API並不並行維護。

您甚至可以用PyObjC,即Python/Objective-C橋來進行Cocoa編程。基於PyObjC,您可以用Python來書寫Cocoa程式。Python是一種解釋性的、注重互動的、及物件導向的程式設計語言。PyObjC使Python對象可以向Objective-C對象傳遞訊息,就象傳遞給Python對象一樣;同時還使Objective-C對象可以向Python對象傳遞訊息。更多資訊請參見"用Python開發基於PyObjC的Cocoa應用程式"文檔,它位於蘋果開發人員聯盟Apple Developer Connection)網站上。

核心的Cocoa類庫封裝在兩個架構中,即Foundation和Application Kit架構。和所有架構一樣,這兩個架構不僅包含動態共用程式庫有時是幾個相容版本的庫),還包含標頭檔、API文檔、和相關的資源。Application Kit和Foundation架構的分割反映了Cocoa編程介面分為圖形化使用者介面部分和非圖形介面。這兩個架構對於最終產品為應用程式的Cocoa工程來說都是必要的。還有幾個較小的、使用Cocoa編程介面的架構和Mac OS X一起發行,比如Screen Saver螢幕保護裝置)和Address Book地址簿)架構。隨著時間的推移,還會有更多架構加入到作業系統中。更多資訊請參見"Cocoa架構"部分。
Cocoa在Mac OS X中的位置

圖1-1顯示了一個簡化了的Mac OS X系統架構框圖:

圖1-1  Mac OS X架構—簡化視圖

這個框圖只是為了一個簡單的目的:為那些不熟悉蘋果平台的開發人員明確指出Mac OS X的主要組件及其依賴性。為了簡潔,圖中省略了一些重要細節,並使其它部分變得模糊。這些細節構成了框圖的重要部分,顯示Cocoa和Mac OS X其它部分的關係。

圖1-2在架構層級上更為精確地反映了Cocoa的位置。這個框圖將Mac OS X顯示為一系列的軟體層,從系統的基礎Darwin到各種應用程式環境。位於中間的層代表包含在Core Services核心服務)和Application Services應用程式服務)這兩個主要的雨傘架構下的系統軟體。在這個框圖中,一個層通常依賴於其下面的其它層。

圖1-2  Cocoa在Mac OS X架構中的位置

在某些方面,這個框圖類似於先前的框圖。舉例來說,主要負責Aqua使用者介面渲染的系統組件Quartz在Core Graphics架構中實現)是Application Services層的一部分。架構棧的基礎部分是Darwin,包括Cocoa在內的Mac OS X各個部分最終都依賴於Darwin。

但是,如果您進一步查看雨傘架構中的一個或一組)Cocoa子類或特定的子架構,就會發現Cocoa或者對Mac OS X其它部分有特定的依賴性,或者通過自身的介面向外部提供基礎的技術。圖1-3部分顯示了上述的依賴性和外部介面。

請注意:雖然Cocoa依賴於特定的架構,但它並不是僅僅“坐”在這些架構的上面。在某些情況下,Cocoa和其它架構比如Carbon)是對等的,甚至可以實現一些其它對等架構不能實現的任務。Cocoa不僅僅是基礎技術上面的一個物件導向的封裝層。

圖1-3  進一步考察Cocoa架構—一些主要的依賴關係

蘋果公司對Cocoa進行了認真的設計,使Cocoa編程介面成為應用程式通常需要的基礎技術訪問通道。但是如果您需要的某些能力不能在Cocoa的介面中找到,或者需要對應用程式進行更為精細的控制,那麼也可以直接使用底層的架構Core Graphics就是一個重要的例子,通過調用該架構或OpenGL的函數,您的代碼可以畫出比Cocoa描畫方法能做到的、更加複雜而具有細微差別的映像)。幸運的是,使用這些低層級的架構並不是問題,因為絕大多數依賴架構的編程介面是用ANSI C寫的,Objective-C是其超集。

請注意:架構概述部分的目的並不是列舉出Cocoa有哪些介面或者它對Mac OS X其它部分有哪些依賴性。相反,概述部分只是考慮最有趣的部分,目的是給您一個有關架構架構的基本思想。

Cocoa依賴的、或者通過類和方法為之提供訪問通道的主要基礎架構有Core Foundation,Carbon,Core Graphics (Quartz),Launch Services,和Print Core (列印子系統)。詳細資料如下:

Core Foundation。Foundation架構的很多類都基於Core Foundation中對應的封裝類型。它們之間的這種緊密關係使“免費橋接”技術—即在相容的Core Foundation和Foundation類型之間實作類別型轉換—成為可能。某些Core Foundation的實現又基於Darwin 層的BSD部分。

Carbon。Cocoa使用了Carbon提供的某些服務,因為有些Carbon架構在Core Services和Application Services層中定位為系統層級的服務。作為例子,Carbon Core就是這些架構中特別重要的一個,Cocoa使用了它提供的File Manager檔案管理工具)組件來進行不同檔案系統表示之間的轉換。

Core Graphics。Cocoa描畫和影像處理類相當自然且緊密地)基於Core Graphics架構,它實現了Quartz和視窗伺服器組件。

Launch Services。NSWorkspace類負責向外提供Launch Services的潛在能力。Cocoa還使用Launch Services提供的應用程式註冊功能來擷取與應用程式及文檔相關聯的表徵圖。

Print Core。Cocoa的列印類是列印子系統的一個物件導向的介面。

此外,Cocoa還使用Carbon環境的Text Encoding Converter文本編碼轉換器)服務來處理一些字串編碼轉換。還有一些Cocoa方法向外提供I/O Kit架構、QuickDraw (QD)架構、 Apple Event (AE)架構、和ATS架構的部分功能,分別用於進行電源管理、QuickDraw描畫、 Apple Event處理、以及提供字型支援。

進一步閱讀: Mac OS X技術概瀏覽一書給出有關架構、服務、技術、和Mac OS X其它組件的概覽。蘋果人機介面指南一書則專註於說明Aqua人機介面的外觀和行為。

小結:關於Cocoa以及Cocoa環境介紹教程的內容介紹完了,希望本文對你有所協助!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.