自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

蘋(píng)果官方指南:Cocoa開(kāi)發(fā)環(huán)境

移動(dòng)開(kāi)發(fā) iOS
Xcode和Interface Builder是開(kāi)發(fā)Cooca軟件優(yōu)先使用的工具。它們的起源正好和Cocoa是一致的,所以在工具和框架之間存在高度的兼容性。Xcode和Interface Builder一起,使設(shè)計(jì)、管理、連編、和調(diào)試Cocoa軟件工程變得非常容易。

說(shuō)Cocoa有它自己的開(kāi)發(fā)環(huán)境并不十分精確。一個(gè)原因是程序員可以使用蘋(píng)果主要的開(kāi)發(fā)工具—Xcode和Interface Builder—來(lái)開(kāi)發(fā)Mac OS X其它應(yīng)用程序環(huán)境的程序,比如Carbon;其次,開(kāi)發(fā)Cocoa應(yīng)用程序時(shí)完全不使用Xcode和Interface Builder也是可能的,比如,您可以使用Metrowerks的CodeWarrior來(lái)管理、編譯、和調(diào)試Cocoa工程;而且,如果您實(shí)在不愿意改變,也可以使用像Emacs這樣的文本編輯器來(lái)編寫(xiě)代碼,用make file和命令行進(jìn)行應(yīng)用程序的連編,然后在命令行上通過(guò)gdb調(diào)試器來(lái)調(diào)試程序。

但是,Xcode和Interface Builder是開(kāi)發(fā)Cooca軟件優(yōu)先使用的工具。它們的起源正好和Cocoa是一致的,所以在工具和框架之間存在高度的兼容性。Xcode和Interface Builder一起,使設(shè)計(jì)、管理、連編、和調(diào)試Cocoa軟件工程變得非常容易。還有一個(gè)叫AppleScript Studio的工具,可以擴(kuò)展應(yīng)用程序的能力,您可以通過(guò)這個(gè)工具來(lái)創(chuàng)建具有腳本能力的Cocoa程序和通過(guò)AppleScript控制其它應(yīng)用程序的程序。

Xcode

Xcode是蘋(píng)果公司在Mac OS X下的集成開(kāi)發(fā)環(huán)境(IDE)引擎。它負(fù)責(zé)處理從最開(kāi)始到工程的最終部署這一過(guò)程中的大多數(shù)細(xì)節(jié)。您可以通過(guò)這個(gè)工具來(lái)完成如下工作:

創(chuàng)建和管理工程,包括指定目標(biāo)的需求、依賴性、和連編的風(fēng)格。

在具有語(yǔ)法染色、自動(dòng)縮進(jìn)等功能的編輯器上編寫(xiě)源代碼。

在工程的不同組件中進(jìn)行漫游和檢索,包括頭文件和文檔。

連編工程

在圖形化的源代碼級(jí)調(diào)試器上調(diào)試工程

Xcode可以連編由C、C++、Objective-C、Objective-C++、和Java編寫(xiě)的源代碼組成的工程,可以生成Mac OS X支持的所有類型的執(zhí)行代碼,包括命令行工具、框架、插件、內(nèi)核擴(kuò)展、程序包、和應(yīng)用程序。Xcode允許您對(duì)連編和調(diào)試工具、可執(zhí)行文件的打包方式(包括信息屬性列表和本地化程序包)、連編過(guò)程(包括拷貝文件、腳本文件處理、和其它連編階段)、以及用戶界面(包括分立和多視圖的代碼編輯器)進(jìn)行幾乎無(wú)限的定制;還支持幾個(gè)源代碼管理系統(tǒng)(其中有CVS和Perforce),使您可以將文件追加到代碼庫(kù)、提交修改、獲取更新版本、以及進(jìn)行版本的比較。

下圖顯示一個(gè)Xcode工程的實(shí)例。

 

The TextEdit example project in Xcode

 

Xcode中的TextEdit實(shí)例

Xcode特別適合用于Cocoa開(kāi)發(fā)。在創(chuàng)建工程時(shí),Xcode可以通過(guò)對(duì)應(yīng)于Cocoa工程類型的工程模板,為您建立一個(gè)初始的開(kāi)發(fā)環(huán)境。Cocoa工程類型有:應(yīng)用程序(Objective-C或Java)、基于文檔的應(yīng)用程序(Objective-C或Java)、工具、程序包、和框架。Xcode使用GNU C編譯器(gcc)來(lái)編譯Cocoa軟件,使用GNU源代碼級(jí)調(diào)試器(gdb)來(lái)調(diào)試軟件。在Cocoa開(kāi)發(fā)中使用gcc和gdb從它還是NeXTSTEP(參見(jiàn)"一點(diǎn)歷史"部分)的時(shí)代就開(kāi)始了。對(duì)Cocoa二進(jìn)制代碼的編譯和調(diào)試經(jīng)過(guò)多年的精化、擴(kuò)展、和調(diào)優(yōu)。

Xcode也有一個(gè)類瀏覽的功能,可以查看所有導(dǎo)入的Cocoa框架類和您自己的定制類,還有它們的繼承關(guān)系;從類瀏覽器中,您可以請(qǐng)求查看任何類的文檔。Xcode還包含一些設(shè)計(jì)工具,其中有一個(gè)工具可以用于設(shè)計(jì)Core Data程序中使用的數(shù)據(jù)實(shí)體的屬性和關(guān)系。

Xcode和另外一個(gè)主要的開(kāi)發(fā)工具Interface Builder良好地集成在一起。在Interface Builder中,您可以定義一個(gè)類(包括超類,插座變量,和動(dòng)作),并為工程中的每個(gè)類生成源代碼文件的框架。在Xcode中,您可以為定制類添加插座變量和動(dòng)作,然后讓Interface Builder將這些實(shí)體導(dǎo)入到nib文件中。

請(qǐng)注意:簡(jiǎn)單地說(shuō),插座變量(outlet)是一個(gè)對(duì)象和另一個(gè)對(duì)象的歸檔連接(表示為對(duì)象中的一個(gè)實(shí)例變量);動(dòng)作則是當(dāng)按鍵或滑塊這類對(duì)象被操作時(shí),在被稱為目標(biāo)(target)的對(duì)象(通常是一個(gè)定制對(duì)象)中被調(diào)用的方法。Interface Builder也會(huì)把目標(biāo)對(duì)象和其它對(duì)象(稱為控件)之間的連接進(jìn)行歸檔。

進(jìn)一步閱讀:Xcode快速指南可以使您概覽Xcode,并為您提供其它開(kāi)發(fā)工具文檔的連接。#p#

Interface Builder

Cocoa工程的第二個(gè)主要開(kāi)發(fā)工具是Interface Builder。顧名思義,Interface Builder是用于創(chuàng)建用戶界面的圖形工具。Interface Builder在Cocoa還是NeXTSTEP的時(shí)候就已經(jīng)存在了,而且從那時(shí)侯起,它就作為同類軟件中的佼佼者而獲得廣泛的認(rèn)可。很自然,它和Cocoa的結(jié)合是很緊密的。而且您也可以用它來(lái)為Carbon應(yīng)用程序創(chuàng)建用戶界面。

Interface Builder以三個(gè)主要的設(shè)計(jì)元素為中心:

Nib文件。nib文件實(shí)際上是以檔案的形式對(duì)用戶界面中出現(xiàn)的對(duì)象進(jìn)行文件包裝(一個(gè)封裝的目錄)。這種檔案本質(zhì)上是一種對(duì)象圖,包含每個(gè)對(duì)象的信息,包括對(duì)象的尺寸及在其屏幕(如果是個(gè)窗口)或窗口內(nèi)的位置信息。Cocoa應(yīng)用程序中的Nib文件還包含定制類的代理引用和對(duì)象間連接信息,包括使用Cocoa綁定技術(shù)建立起來(lái)的連接。當(dāng)您在Interface Builder中創(chuàng)建并保存一個(gè)用戶界面時(shí),重建該界面需要的所有信息都會(huì)被存在nib文件中。nib文件還可以包含界面中使用的圖像和聲音文件。

Interface Builder將nib文件存儲(chǔ)在Cocoa工程中的一個(gè)本地化目錄下。在連編工程時(shí),nib文件就會(huì)被拷貝到新建的程序包中對(duì)應(yīng)的本地化目錄下(nib文件因此可以提供一種很好的用戶界面本地化方法)。 Cocoa應(yīng)用程序缺省(也就是說(shuō)Xcode會(huì)自動(dòng)創(chuàng)建)有一個(gè)主nib文件,在運(yùn)行時(shí)自動(dòng)被裝載和顯示。主nib文件包含應(yīng)用程序的主菜單,并可能有一個(gè)或多個(gè)窗口。您的應(yīng)用程序可以根據(jù)需要裝載輔助的nib文件,比如文檔或預(yù)置窗口所在的文件。

Interface Builder將nib文件的內(nèi)容表示在nib文件窗口中。您也可以在nib文件窗口中定義定制類及考察對(duì)象之間的連接。

選盤(pán)。 Interface Builder的選盤(pán)(Palette)窗口中包含多個(gè)面板,或者稱為“選盤(pán)”,每個(gè)選盤(pán)中包含一個(gè)彼此有關(guān)系的用戶界面對(duì)象的集合。將對(duì)象從選盤(pán)拖拽到恰當(dāng)?shù)奈恢蒙暇涂梢詣?chuàng)建用戶界面了,這里的位置可以是屏幕、窗口、各種視圖、或者主菜單(選盤(pán)對(duì)象自身不一定是可見(jiàn)的,但是必須以某種形式影響用戶界面)。當(dāng)您將一個(gè)對(duì)象從選盤(pán)上拖出時(shí),Interface Builder會(huì)實(shí)例化一個(gè)該對(duì)象的缺省實(shí)例。這個(gè)實(shí)例是一個(gè)真正的Cocoa對(duì)象,而不是運(yùn)行時(shí)需要?jiǎng)?chuàng)建的實(shí)例的代理對(duì)象。如果您愿意的話,可以將您自己的定制對(duì)象放在選盤(pán)上。

查看器。 Interface Builder為用戶界面上的對(duì)象提供一個(gè)查看器(稱為Info窗口)。Info窗口由一系列可選擇的面板組成,用于設(shè)置對(duì)象的初始屬性和尺寸(雖然尺寸和很多屬性也可以直接進(jìn)行操作)。其中的兩個(gè)面板用于建立對(duì)象之間的連接,一個(gè)基于插座變量和動(dòng)作,另一個(gè)基于綁定技術(shù)。還有一個(gè)面板用于將定制類代替Application Kit框架中的超類。其它面板較為特殊,專用于建立用戶界面對(duì)象和幫助標(biāo)簽及AppleScript事件處理器之間的關(guān)聯(lián)。

下圖顯示了一個(gè)在Interface Builder中打開(kāi)的nib文件,以及支持窗口。

 

TextEdit’s Preferences window in Interface Builder

 

Interface Builder中TextEdit的預(yù)置窗口

用Interface Builder創(chuàng)建用戶界面的步驟比較直接:

將窗口或面板拖拽到屏幕上(面板等同于對(duì)話框或輔助窗口)。

設(shè)置窗口的初始(或固定的)位置、尺寸、和屬性。

將文本框、按鍵、表視圖控件、和彈出式列表等對(duì)象拖到窗口或之前放好的視圖對(duì)象上。

為這些對(duì)象設(shè)置初始(或固定的)位置、尺寸、和屬性。

為應(yīng)用程序定義定制類。

您可以直接在Interface Builder中完成這個(gè)工作,或者將事先創(chuàng)建好的頭文件裝載到Interface Builder。在進(jìn)行類的定制時(shí),可以通過(guò)Interface Builder指定插座變量和動(dòng)作。

在對(duì)象之間建立綁定和連接。這有兩種形式:

在應(yīng)用程序的視圖、控制器、和模型對(duì)象之間建立綁定關(guān)系。

把插座變量連接到它們引用的對(duì)象,接著把動(dòng)作連接到目標(biāo)對(duì)象中合適的方法上。

保存和測(cè)試用戶界面。

Interface Builder有一個(gè)功能,可以在設(shè)計(jì)的各個(gè)階段測(cè)試界面(定制的行為除外)。

為您定義的各個(gè)定制類創(chuàng)建頭文件和源代碼文件,這些文件會(huì)出現(xiàn)在關(guān)聯(lián)的Xcode工程上。

Interface Builder還包含一個(gè)功能:在對(duì)一個(gè)擺好位置的對(duì)象進(jìn)行移動(dòng)或調(diào)整其尺寸時(shí),會(huì)通過(guò)一些短暫出現(xiàn)的藍(lán)線來(lái)顯示當(dāng)前位置是否遵循Aqua人機(jī)界面指南,包括推薦的尺寸、對(duì)齊、與用戶界面上的其它對(duì)象或窗口邊界的相對(duì)位置。

進(jìn)一步閱讀:有關(guān)用戶界面開(kāi)發(fā)工具的進(jìn)一步信息,請(qǐng)參見(jiàn)Interface Builder部分。此外,"Nib文件"部分給出了nib文件及其在應(yīng)用程序中如何被使用的更多信息。您還可以參考"對(duì)象之間的通訊"部分,以概要了解插座變量、目標(biāo)-動(dòng)作機(jī)制、以及Cocoa綁定技術(shù)。#p#

AppleScript Studio

多年來(lái),Mac OS一直有一個(gè)定義良好的特性,就是用戶可以通過(guò)由AppleScript語(yǔ)言寫(xiě)成的腳本控制應(yīng)用程序。很多用戶發(fā)現(xiàn)這個(gè)特性是不可或缺的,因?yàn)樗梢詫⑸婕岸鄠€(gè)應(yīng)用程序的復(fù)雜操作序列串接在一起。AppleScript的能力在Mac OS X系統(tǒng)上更進(jìn)了一步。AppleScript Studio是一種開(kāi)發(fā)技術(shù),用于創(chuàng)建通過(guò)AppleScript腳本控制復(fù)雜用戶界面的Cocoa程序。

AppleScript Studio把來(lái)自AppleScript、Xcode、Interface Builder、和Cocoa的各種元素結(jié)合起來(lái),提供了一個(gè)創(chuàng)建AppleScript解決方案的開(kāi)發(fā)環(huán)境。您可以通過(guò)它來(lái)制作應(yīng)用程序,完成如下任務(wù):

執(zhí)行AppleScript腳本

控制應(yīng)用程序的界面

控制具有腳本能力的應(yīng)用程序或操作系統(tǒng)中支持腳本的部分

由于AppleScript Studio將AppleScript和Xcode、Interface Builder、和Cocoa集成在一起,腳本編程者可以利用這些組件各自的優(yōu)勢(shì)和能力。他們可以從Interface Builder選盤(pán)中拖出一組豐富的用戶界面對(duì)象,根據(jù)個(gè)人的喜好進(jìn)行定制;可以得到內(nèi)置的Aqua用戶界面指南的支持;還能夠連編和維護(hù)帶有多個(gè)目標(biāo)和連編步驟的的復(fù)雜工程。

這個(gè)開(kāi)發(fā)環(huán)境使我們有可能通過(guò)腳本對(duì)Script Editor程序(它是創(chuàng)建AppleScript腳本的傳統(tǒng)工具)不能提供的能力進(jìn)行控制,這些能力包括:

創(chuàng)建任意大的腳本

在腳本中進(jìn)行檢索和替代

單步腳本調(diào)試,支持各種執(zhí)行方式

方便訪問(wèn)腳本中的處理函數(shù)和屬性

靈活的字典查看器,和應(yīng)用程序的腳本用語(yǔ)一起使用。

進(jìn)一步閱讀:更多信息請(qǐng)參見(jiàn)AppleScript Studio編程指南。#p#

其它開(kāi)發(fā)工具

雖然Xcode和Interface Builder是開(kāi)發(fā)Cocoa應(yīng)用程序的主要工具,但是還有許多工具可以使用。在一些應(yīng)用程序開(kāi)發(fā)階段中,您可能會(huì)找到很多輔助的應(yīng)用程序和命令行工具。

這個(gè)部分將回顧一些輔助性的開(kāi)發(fā)工具并簡(jiǎn)短地討論一些命令行工具,然而命令行工具的數(shù)量太多,即使對(duì)它們進(jìn)行一個(gè)濃縮的總結(jié)也超出了本文的范圍。您的最好選擇就是訪問(wèn)/usr/bin和/usr/sbin目錄下各種工具的使用手冊(cè)(man頁(yè)面),只要在Terminal外殼下鍵入man命令,后面跟著命令名稱就可以了。在/Developer/Tools目錄下還有一些蘋(píng)果開(kāi)發(fā)的命令行工具。

性能工具

下面這些應(yīng)用程序用于軟件性能的測(cè)量和分析。它們位于/Developer/Applications目錄下。

Sampler 用于分析程序運(yùn)行時(shí)的行為和內(nèi)存分配。顧名思義,Sampler會(huì)按一定的時(shí)間周期對(duì)程序的函數(shù)調(diào)用棧進(jìn)行采樣,并在采樣結(jié)束時(shí)向您顯示調(diào)用頻率最高的函數(shù)或方法。這種信息有助于定位消耗大量CPU時(shí)間或進(jìn)行內(nèi)存分配的函數(shù)或方法。

ObjectAlloc 用于跟蹤各種程序的內(nèi)存分配與釋放行為。這種歷史數(shù)據(jù)可以顯示重復(fù)的內(nèi)存分配行為和總體的分配趨勢(shì)。對(duì)于Objective-C代碼,ObjectAlloc在記錄alloc調(diào)用的同時(shí),也記錄每個(gè)copy、retain、release、autorelease調(diào)用,而且還記錄在Core Foundation中與這些方法相對(duì)應(yīng)的函數(shù),以及malloc(及相關(guān))函數(shù)進(jìn)行的內(nèi)存分配。

MallocDebug 按分配時(shí)的調(diào)用棧順序顯示程序中當(dāng)前已分配的內(nèi)存塊。通過(guò)這個(gè)工具一下子就可以看到您的應(yīng)用程序消耗多少內(nèi)存、這些內(nèi)存是從哪里分配的、以及哪些函數(shù)分配了大量的內(nèi)存。MallocDebug還可以找出在程序中分配的、卻沒(méi)有被引用的內(nèi)存,因此可以幫助您發(fā)現(xiàn)內(nèi)存泄露并跟蹤這些泄露的內(nèi)存是在哪里分配的。

QuartzDebug 是一個(gè)幫助您對(duì)應(yīng)用程序的顯示機(jī)制進(jìn)行調(diào)試的工具,對(duì)大量進(jìn)行描畫(huà)和圖像處理的應(yīng)用程序特別有用。QuartzDebug包括如下幾個(gè)調(diào)試選項(xiàng):

自動(dòng)閃爍描畫(huà)模式,這種模式會(huì)在每個(gè)描畫(huà)操作之后閃爍一下圖形上下文。

在更新屏幕區(qū)域之前先用黃色對(duì)該區(qū)域進(jìn)行描畫(huà)的模式。

用于取得整個(gè)系統(tǒng)的窗口列表的靜態(tài)快照,同時(shí)給出每個(gè)窗口的擁有者及該窗口消耗多少內(nèi)存的選項(xiàng)。

Thread Viewer 顯示一個(gè)進(jìn)程中各個(gè)線程的活動(dòng)。這個(gè)工具顯示每個(gè)線程的活動(dòng)時(shí)間線,動(dòng)作在時(shí)間線上用不同的顏色表示。點(diǎn)擊時(shí)間線可以得到與點(diǎn)擊位置相對(duì)應(yīng)的活動(dòng)回溯樣本。

還有一些命令行工具可以用于性能分析,比如:

top,對(duì)當(dāng)前正在運(yùn)行的進(jìn)程進(jìn)行采樣統(tǒng)計(jì)并顯示統(tǒng)計(jì)結(jié)果。

gprof,用于產(chǎn)生程序的執(zhí)行輪廓

fs_usage,顯示文件系統(tǒng)訪問(wèn)的統(tǒng)計(jì)信息

還有其它很多命令行工具可以用于性能分析。有關(guān)Cocoa應(yīng)用程序開(kāi)發(fā)可以用哪些性能分析工具以及性能分析的概念、技術(shù)、和策略的更多信息,請(qǐng)參見(jiàn)性能編程主題(Performance Programming Topics)文檔。

請(qǐng)注意:性能概述對(duì)Mac OS X的性能工具進(jìn)行討論。

其它工具

您還可以發(fā)現(xiàn)下面的工具對(duì)Cocoa應(yīng)用程序開(kāi)發(fā)很有用(位于/Developer/Applications目錄下):

Icon Composer和Icns Browser 您可以用Icon Composer來(lái)導(dǎo)入各種格式的圖像,創(chuàng)建應(yīng)用程序圖標(biāo)和文檔圖標(biāo)的圖標(biāo)文件;還可以用Icns Browser程序來(lái)創(chuàng)建不同尺寸、位深度、和位掩碼的圖標(biāo)變體。

FileMerge 這個(gè)工具可以可視化地“diffs” 各種文本文件(比如源代碼文件、頭文件、和屬性列表),并具有選擇合并的能力。

Package Maker 通過(guò)Installer程序?yàn)閼?yīng)用程序(其它類型的軟件)制作安裝包。

Property List Editor 這是一個(gè)編輯器,用于創(chuàng)建和編輯XML及較老風(fēng)格的屬性列表。

責(zé)任編輯:佚名 來(lái)源: 蘋(píng)果官網(wǎng)
相關(guān)推薦

2011-06-15 17:02:02

CocoaiOS

2011-06-17 16:23:49

Cocoa蘋(píng)果

2011-06-17 15:38:15

Cocoa蘋(píng)果

2011-07-07 14:46:10

Cocoa Xcode

2011-07-26 15:14:24

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

2011-08-10 18:37:32

CocoaMac OS X

2011-07-07 13:30:32

Cocoa Core

2011-07-07 10:07:19

Cocoa 框架

2011-07-07 10:29:35

Cocoa 方法 框架

2011-07-07 14:22:27

Cocoa 對(duì)象 生命周期

2011-07-07 10:39:07

Cocoa 函數(shù)

2010-04-03 11:30:15

Widget開(kāi)發(fā)

2011-07-07 10:50:09

Cocoa 框架

2017-05-25 12:30:44

AndroidApp開(kāi)發(fā)架構(gòu)

2011-07-07 14:10:21

Cocoa 內(nèi)省 hash

2015-06-15 18:07:07

2011-06-15 16:11:51

UIKitCocoa TouchiOS

2011-09-05 14:02:53

Android視頻教程

2011-08-11 15:46:55

CocoaCocoa Touch框架

2016-02-24 17:40:13

IBM Cloud蘋(píng)果Swift
點(diǎn)贊
收藏

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