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

關(guān)于Cocoa以及Cocoa環(huán)境介紹教程

移動(dòng)開(kāi)發(fā) iOS
Cocoa應(yīng)用程序正逐漸成為Mac OS X的應(yīng)用程序標(biāo)準(zhǔn)。iPhoto、Safari、和Mail都是Cocoa應(yīng)用程序。這些應(yīng)用程序由于聰明的設(shè)計(jì)、豐富的功能、和激動(dòng)人心的用戶(hù)界面而受到了相當(dāng)程度的好評(píng)。

Cocoa以及Cocoa環(huán)境介紹是本文要講述的內(nèi)容,在Mac OS X操作系統(tǒng)上,Cocoa和Carbon及Java一樣,是一種應(yīng)用程序環(huán)境。它由一組面向?qū)ο蟮能浖?kù)和一個(gè)運(yùn)行環(huán)境組成,它的集成開(kāi)發(fā)環(huán)境和其它應(yīng)用程序環(huán)境相同。本章將在這個(gè)定義的基礎(chǔ)上進(jìn)行擴(kuò)展,描述Cocoa的目標(biāo)、能力、和物理形式。

Cocoa的環(huán)境

Cocoa應(yīng)用程序正逐漸成為Mac OS X的應(yīng)用程序標(biāo)準(zhǔn)。iPhoto、Safari、和Mail都是Cocoa應(yīng)用程序。這些應(yīng)用程序由于聰明的設(shè)計(jì)、豐富的功能、和激動(dòng)人心的用戶(hù)界面而受到了相當(dāng)程度的好評(píng)。但是,對(duì)于一般用戶(hù)來(lái)說(shuō)并不明顯(和典型的開(kāi)發(fā)周期相比)的是:這些程序從設(shè)計(jì)階段到最終部署的過(guò)程是多么的快速。作為應(yīng)用程序開(kāi)發(fā)環(huán)境,是什么使Cocoa成為比Carbon切實(shí)可行、甚至是強(qiáng)制性的替代呢。

和所有的應(yīng)用程序環(huán)境一樣,Cocoa包括兩個(gè)方面:即運(yùn)行環(huán)境方面和開(kāi)發(fā)方面。在運(yùn)行環(huán)境方面,Cocoa應(yīng)用程序呈現(xiàn)Aqua用戶(hù)界面,且和操作系統(tǒng)的其它可視部分緊密集成,這些部分包括Finder、Dock、和基于所有環(huán)境的其它應(yīng)用程序。Cocoa無(wú)縫地成為了用戶(hù)體驗(yàn)的一部分,在運(yùn)行環(huán)境方面表現(xiàn)優(yōu)秀。

但是,程序員更感興趣的是開(kāi)發(fā)方面。Cocoa是一個(gè)面向?qū)ο蟮能浖M件—類(lèi)—的集成套件,它使開(kāi)發(fā)者可以快速創(chuàng)建強(qiáng)壯和全功能的Mac OS X應(yīng)用程序。這些類(lèi)是可復(fù)用和可支配的軟件積木,開(kāi)發(fā)者可以直接使用,或者根據(jù)具體需求對(duì)其進(jìn)行擴(kuò)展。從用戶(hù)界面對(duì)象到Bonjour網(wǎng)絡(luò),幾乎每個(gè)想象得到的開(kāi)發(fā)需求都存在對(duì)應(yīng)的Cocoa類(lèi);對(duì)于沒(méi)有預(yù)想到的需求,您可以輕松地從現(xiàn)有類(lèi)派生出子類(lèi)來(lái)實(shí)現(xiàn)。

在各種面向?qū)ο蟮拈_(kāi)發(fā)環(huán)境中,Cocoa有著最為著名的血統(tǒng)。從1989年作為NeXTSTEP推出到現(xiàn)在,人們一直對(duì)它進(jìn)行精化和測(cè)試(參見(jiàn)"一點(diǎn)歷史"部分)。它優(yōu)雅而強(qiáng)大的設(shè)計(jì)完美地適合所有類(lèi)型的快速軟件開(kāi)發(fā):不僅適合開(kāi)發(fā)應(yīng)用程序,也適合開(kāi)發(fā)命令行工具、插件、和不同類(lèi)型的程序包。Cocoa為您的應(yīng)用程序“免費(fèi)”提供很多行為和外觀,使您可以將更多的時(shí)間用于有特色的功能上(有關(guān)Cocoa提供的功能的詳細(xì)信息,請(qǐng)參見(jiàn)"Cocoa應(yīng)用程序的特性"部分)。

在開(kāi)發(fā)Cocoa軟件的時(shí)候,您可以使用多種編程語(yǔ)言。基本的語(yǔ)言是Objective-C。Objective-C擁有自己的Cocoa運(yùn)行環(huán)境,是ANSI C的超集,它在ANSI C的語(yǔ)法和語(yǔ)義特性上(從Smalltalk派生而來(lái))進(jìn)行擴(kuò)展,使之支持面向?qū)ο蟮木幊獭P略龅囊?guī)則簡(jiǎn)單而又易于學(xué)習(xí)和使用。由于Objective-C是基于ANSI C的,您可以自由地將C代碼直接和Objective-C代碼混合在一起。而且,您的代碼可以調(diào)用非Cocoa的編程接口中定義的所有函數(shù),比如Carbon和BSD。您甚至可以將C++代碼混合到Cocoa代碼中,并將它們連接在同一個(gè)執(zhí)行文件中。最后,Cocoa支持Java。Cocoa為此定義了一個(gè)平行的Java類(lèi)庫(kù),并且實(shí)現(xiàn)了一個(gè)將Java接口映射到Objective-C實(shí)現(xiàn)的橋機(jī)制。Cocoa的Java支持使您可以將本地的Java對(duì)象和Cocoa對(duì)象混合在一起使用(在某些限制下)

重要信息:Cocoa-Java是熟悉Java語(yǔ)言的開(kāi)發(fā)者的學(xué)習(xí)環(huán)境,我們并不推薦將它用于產(chǎn)品開(kāi)發(fā)。Objective-C API會(huì)不斷進(jìn)化,而Cocoa-Java API并不并行維護(hù)。

您甚至可以用PyObjC,即Python/Objective-C橋來(lái)進(jìn)行Cocoa編程。基于PyObjC,您可以用Python來(lái)書(shū)寫(xiě)Cocoa程序。Python是一種解釋性的、注重交互的、及面向?qū)ο蟮木幊陶Z(yǔ)言。PyObjC使Python對(duì)象可以向Objective-C對(duì)象傳遞消息,就象傳遞給Python對(duì)象一樣;同時(shí)還使Objective-C對(duì)象可以向Python對(duì)象傳遞消息。更多信息請(qǐng)參見(jiàn)"用Python開(kāi)發(fā)基于PyObjC的Cocoa應(yīng)用程序"文檔,它位于蘋(píng)果開(kāi)發(fā)者聯(lián)盟(Apple Developer Connection)網(wǎng)站上。

核心的Cocoa類(lèi)庫(kù)封裝在兩個(gè)框架中,即Foundation和Application Kit框架。和所有框架一樣,這兩個(gè)框架不僅包含動(dòng)態(tài)共享庫(kù)(有時(shí)是幾個(gè)兼容版本的庫(kù)),還包含頭文件、API文檔、和相關(guān)的資源。Application Kit和Foundation框架的分割反映了Cocoa編程接口分為圖形用戶(hù)界面部分和非圖形接口。這兩個(gè)框架對(duì)于最終產(chǎn)品為應(yīng)用程序的Cocoa工程來(lái)說(shuō)都是必要的。還有幾個(gè)較小的、使用Cocoa編程接口的框架和Mac OS X一起發(fā)行,比如Screen Saver(屏幕保護(hù))和Address Book(地址簿)框架。隨著時(shí)間的推移,還會(huì)有更多框架加入到操作系統(tǒng)中。更多信息請(qǐng)參見(jiàn)"Cocoa框架"部分。
Cocoa在Mac OS X中的位置

圖1-1顯示了一個(gè)簡(jiǎn)化了的Mac OS X系統(tǒng)架構(gòu)框圖:

關(guān)于Cocoa以及Cocoa環(huán)境介紹教程

圖1-1  Mac OS X架構(gòu)—簡(jiǎn)化視圖

這個(gè)框圖只是為了一個(gè)簡(jiǎn)單的目的:為那些不熟悉蘋(píng)果平臺(tái)的開(kāi)發(fā)者明確指出Mac OS X的主要組件及其依賴(lài)性。為了簡(jiǎn)潔,圖中省略了一些重要細(xì)節(jié),并使其它部分變得模糊。這些細(xì)節(jié)構(gòu)成了框圖的重要部分,顯示Cocoa和Mac OS X其它部分的關(guān)系。

圖1-2在架構(gòu)級(jí)別上更為精確地反映了Cocoa的位置。這個(gè)框圖將Mac OS X顯示為一系列的軟件層,從系統(tǒng)的基礎(chǔ)Darwin到各種應(yīng)用程序環(huán)境。位于中間的層代表包含在Core Services(核心服務(wù))和Application Services(應(yīng)用程序服務(wù))這兩個(gè)主要的雨傘框架下的系統(tǒng)軟件。在這個(gè)框圖中,一個(gè)層通常依賴(lài)于其下面的其它層。

關(guān)于Cocoa以及Cocoa環(huán)境介紹教程

圖1-2  Cocoa在Mac OS X架構(gòu)中的位置

在某些方面,這個(gè)框圖類(lèi)似于先前的框圖。舉例來(lái)說(shuō),主要負(fù)責(zé)Aqua用戶(hù)界面渲染的系統(tǒng)組件Quartz(在Core Graphics框架中實(shí)現(xiàn))是Application Services層的一部分。架構(gòu)棧的基礎(chǔ)部分是Darwin,包括Cocoa在內(nèi)的Mac OS X各個(gè)部分最終都依賴(lài)于Darwin。

但是,如果您進(jìn)一步查看雨傘框架中的一個(gè)(或一組)Cocoa子類(lèi)或特定的子框架,就會(huì)發(fā)現(xiàn)Cocoa或者對(duì)Mac OS X其它部分有特定的依賴(lài)性,或者通過(guò)自身的接口向外部提供基礎(chǔ)的技術(shù)。圖1-3部分顯示了上述的依賴(lài)性和外部接口。

請(qǐng)注意:雖然Cocoa依賴(lài)于特定的框架,但它并不是僅僅“坐”在這些框架的上面。在某些情況下,Cocoa和其它框架(比如Carbon)是對(duì)等的,甚至可以實(shí)現(xiàn)一些其它對(duì)等框架不能實(shí)現(xiàn)的任務(wù)。Cocoa不僅僅是基礎(chǔ)技術(shù)上面的一個(gè)面向?qū)ο蟮姆庋b層。

關(guān)于Cocoa以及Cocoa環(huán)境介紹教程

圖1-3  進(jìn)一步考察Cocoa架構(gòu)—一些主要的依賴(lài)關(guān)系

蘋(píng)果公司對(duì)Cocoa進(jìn)行了認(rèn)真的設(shè)計(jì),使Cocoa編程接口成為應(yīng)用程序通常需要的基礎(chǔ)技術(shù)訪問(wèn)通道。但是如果您需要的某些能力不能在Cocoa的接口中找到,或者需要對(duì)應(yīng)用程序進(jìn)行更為精細(xì)的控制,那么也可以直接使用底層的框架(Core Graphics就是一個(gè)重要的例子,通過(guò)調(diào)用該框架或OpenGL的函數(shù),您的代碼可以畫(huà)出比Cocoa描畫(huà)方法能做到的、更加復(fù)雜而具有細(xì)微差別的圖像)。幸運(yùn)的是,使用這些低級(jí)別的框架并不是問(wèn)題,因?yàn)榻^大多數(shù)依賴(lài)框架的編程接口是用ANSI C寫(xiě)的,Objective-C是其超集。

請(qǐng)注意:架構(gòu)概述部分的目的并不是列舉出Cocoa有哪些接口或者它對(duì)Mac OS X其它部分有哪些依賴(lài)性。相反,概述部分只是考慮最有趣的部分,目的是給您一個(gè)有關(guān)框架架構(gòu)的基本思想。

Cocoa依賴(lài)的、或者通過(guò)類(lèi)和方法為之提供訪問(wèn)通道的主要基礎(chǔ)框架有Core Foundation,Carbon,Core Graphics (Quartz),Launch Services,和Print Core (打印子系統(tǒng))。詳細(xì)信息如下:

Core Foundation。Foundation框架的很多類(lèi)都基于Core Foundation中對(duì)應(yīng)的封裝類(lèi)型。它們之間的這種緊密關(guān)系使“免費(fèi)橋接”技術(shù)—即在兼容的Core Foundation和Foundation類(lèi)型之間實(shí)現(xiàn)類(lèi)型轉(zhuǎn)換—成為可能。某些Core Foundation的實(shí)現(xiàn)又基于Darwin 層的BSD部分。

Carbon。Cocoa使用了Carbon提供的某些服務(wù),因?yàn)橛行〤arbon框架在Core Services和Application Services層中定位為系統(tǒng)級(jí)別的服務(wù)。作為例子,Carbon Core就是這些框架中特別重要的一個(gè),Cocoa使用了它提供的File Manager(文件管理器)組件來(lái)進(jìn)行不同文件系統(tǒng)表示之間的轉(zhuǎn)換。

Core Graphics。Cocoa描畫(huà)和圖像處理類(lèi)(相當(dāng)自然且緊密地)基于Core Graphics框架,它實(shí)現(xiàn)了Quartz和窗口服務(wù)器組件。

Launch Services。NSWorkspace類(lèi)負(fù)責(zé)向外提供Launch Services的潛在能力。Cocoa還使用Launch Services提供的應(yīng)用程序注冊(cè)功能來(lái)獲取與應(yīng)用程序及文檔相關(guān)聯(lián)的圖標(biāo)。

Print Core。Cocoa的打印類(lèi)是打印子系統(tǒng)的一個(gè)面向?qū)ο蟮慕涌凇?/p>

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

進(jìn)一步閱讀: Mac OS X技術(shù)概瀏覽一書(shū)給出有關(guān)框架、服務(wù)、技術(shù)、和Mac OS X其它組件的概覽。蘋(píng)果人機(jī)界面指南一書(shū)則專(zhuān)注于說(shuō)明Aqua人機(jī)界面的外觀和行為。

小結(jié):關(guān)于Cocoa以及Cocoa環(huán)境介紹教程的內(nèi)容介紹完了,希望本文對(duì)你有所幫助!

責(zé)任編輯:zhaolei 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-07-07 13:30:32

Cocoa Core

2011-08-11 15:46:55

CocoaCocoa Touch框架

2011-08-03 10:24:22

Cocoa Touch 靜態(tài)庫(kù)

2011-06-17 15:57:46

CocoaXcode蘋(píng)果

2011-06-15 17:02:02

CocoaiOS

2011-07-07 13:51:24

Cocoa 框架

2011-05-11 15:27:58

Windows OOPCocoa MVCCocoa

2011-05-11 17:48:31

CocoaiOS

2011-08-15 15:56:29

Cocoa編程模塊

2011-07-07 13:39:14

Cocoa 類(lèi) 框架

2011-07-26 15:14:24

蘋(píng)果 Cocoa 內(nèi)存

2011-07-07 14:10:21

Cocoa 內(nèi)省 hash

2011-07-07 14:46:10

Cocoa Xcode

2011-07-07 14:22:27

Cocoa 對(duì)象 生命周期

2011-07-07 13:59:49

Cocoa Objective- 根類(lèi)

2011-07-06 15:06:46

Xcode Cocoa

2011-07-20 09:49:41

Xcode Interface Builder

2011-07-26 10:42:00

Cocoa Cocoa2d 游戲

2011-07-08 16:43:46

iPhone Cocoa 多線程

2011-07-08 18:03:30

Cocoa Touch 網(wǎng)絡(luò)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲vs天堂 | 国产免费一区二区三区免费视频 | 国产精品美女久久久av超清 | 久久亚洲一区二区三区四区 | 国产精品视频一区二区三区 | 日韩一区二区在线观看 | 久久99精品久久久久久 | 精品国产乱码久久久久久1区2区 | 精品久久久久久中文字幕 | 日韩不卡一区二区三区 | 97av视频 | 最新黄色在线观看 | 精品无码久久久久国产 | 亚洲精品免费在线观看 | 午夜精品视频 | 天天干干 | 性做久久久久久免费观看欧美 | 欧美成人a∨高清免费观看 色999日韩 | 中文天堂在线一区 | 免费久久久 | 亚洲日产精品 | 久久国产精品偷 | 精品国产乱码一区二区三区a | 成人一区二区在线 | 欧美成人免费 | 激情五月激情综合网 | 国产精品亚洲综合 | 黑人久久久 | 日韩高清不卡 | 国产精品美女一区二区 | 五月婷婷 六月丁香 | 国产亚洲欧美在线 | 国产免费看| 一级黄色片一级黄色片 | 日韩欧美国产一区二区 | 中文字幕在线观 | 免费观看一级特黄欧美大片 | 一本大道久久a久久精二百 国产成人免费在线 | 日韩在线不卡视频 | 国产一级片在线观看视频 | 91在线精品视频 |