成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Cocoa 基本原理指南 Cocoa自我介紹

移動開發 iOS
Cocoa是一個面向對象的軟件組件—類—的集成套件,它使開發者可以快速創建強壯和全功能的Mac OS X應用程序。這些類是可復用和可支配的軟件積木,開發者可以直接使用,或者根據具體需求對其進行擴展。

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系統架構框圖:

Cocoa 基本原理指南 Cocoa自我介紹

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

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

圖1-2在架構級別上更為精確地反映了Cocoa的位置。

這個框圖將Mac OS X顯示為一系列的軟件層,從系統的基礎Darwin到各種應用程序環境。位于中間的層代表包含在Core Services(核心服務)和Application Services(應用程序服務)這兩個主要的雨傘框架下的系統軟件。在這個框圖中,一個層通常依賴于其下面的其它層。

Cocoa 基本原理指南 Cocoa自我介紹

圖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不僅僅是基礎技術上面的一個面向對象的封裝層。

Cocoa 基本原理指南 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 CoreCocoa的打印類是打印子系統的一個面向對象的接口。

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

小結:關于Cocoa 基本原理指南 Cocoa自我介紹的內容介紹完了,希望本文對你以后幫助!

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-07-07 14:10:21

Cocoa 內省 hash

2011-07-07 14:22:27

Cocoa 對象 生命周期

2011-07-07 14:46:10

Cocoa Xcode

2011-08-10 19:33:09

Cocoa對象

2011-08-10 18:37:32

CocoaMac OS X

2010-03-18 20:13:03

Java socket

2012-01-12 14:37:34

jQuery

2011-06-17 16:23:49

Cocoa蘋果

2009-02-24 09:43:00

IP電話原理

2011-11-29 12:17:00

2011-08-11 15:46:55

CocoaCocoa Touch框架

2011-06-17 15:57:46

CocoaXcode蘋果

2011-07-07 10:39:07

Cocoa 函數

2011-07-07 10:07:19

Cocoa 框架

2011-07-07 10:29:35

Cocoa 方法 框架

2011-06-15 17:02:02

CocoaiOS

2019-11-28 10:45:28

ZooKeeper源碼分布式

2016-08-18 00:04:09

網絡爬蟲抓取系統服務器

2010-08-20 13:29:33

OFDM

2013-04-07 14:09:55

Android應用基本
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品1区 | 久久久久国产精品www | 国产欧美日韩精品一区 | 久久91精品国产一区二区三区 | 成人午夜视频在线观看 | 成年人精品视频在线观看 | 久久久久久国产精品三区 | 99免费在线观看 | ww亚洲ww亚在线观看 | 亚洲国产一区二区三区 | 久久久久久久久久久蜜桃 | 成人字幕网zmw | 91免费观看| 黑人精品欧美一区二区蜜桃 | 视频一区二区在线观看 | 日本精品一区二区三区视频 | 亚洲精品乱码 | 国产精品一区二区在线免费观看 | 亚洲精品9999久久久久 | 欧美性猛交一区二区三区精品 | 在线观看国产精品视频 | 天天综合永久入口 | 日韩免费毛片视频 | 国产精品美女久久久久久免费 | 伊人青青久久 | 人人九九精 | 99精品一区二区三区 | 久久亚洲二区 | 91在线视频观看 | 久久伊人精品 | 久久9999久久 | 国产精品免费av | www久| 一区二区三区电影在线观看 | 国产精品一区二 | 国产成人黄色 | 日韩精品免费视频 | 欧美一区二区三区久久精品 | 国产精品一区二区三区在线 | 久久曰视频 | 毛片高清 |