国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

蘋果官方指南:Cocoa開發環境

移動開發 iOS
Xcode和Interface Builder是開發Cooca軟件優先使用的工具。它們的起源正好和Cocoa是一致的,所以在工具和框架之間存在高度的兼容性。Xcode和Interface Builder一起,使設計、管理、連編、和調試Cocoa軟件工程變得非常容易。

說Cocoa有它自己的開發環境并不十分精確。一個原因是程序員可以使用蘋果主要的開發工具—Xcode和Interface Builder—來開發Mac OS X其它應用程序環境的程序,比如Carbon;其次,開發Cocoa應用程序時完全不使用Xcode和Interface Builder也是可能的,比如,您可以使用Metrowerks的CodeWarrior來管理、編譯、和調試Cocoa工程;而且,如果您實在不愿意改變,也可以使用像Emacs這樣的文本編輯器來編寫代碼,用make file和命令行進行應用程序的連編,然后在命令行上通過gdb調試器來調試程序。

但是,Xcode和Interface Builder是開發Cooca軟件優先使用的工具。它們的起源正好和Cocoa是一致的,所以在工具和框架之間存在高度的兼容性。Xcode和Interface Builder一起,使設計、管理、連編、和調試Cocoa軟件工程變得非常容易。還有一個叫AppleScript Studio的工具,可以擴展應用程序的能力,您可以通過這個工具來創建具有腳本能力的Cocoa程序和通過AppleScript控制其它應用程序的程序。

Xcode

Xcode是蘋果公司在Mac OS X下的集成開發環境(IDE)引擎。它負責處理從最開始到工程的最終部署這一過程中的大多數細節。您可以通過這個工具來完成如下工作:

創建和管理工程,包括指定目標的需求、依賴性、和連編的風格。

在具有語法染色、自動縮進等功能的編輯器上編寫源代碼。

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

連編工程

在圖形化的源代碼級調試器上調試工程

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

下圖顯示一個Xcode工程的實例。

 

The TextEdit example project in Xcode

 

Xcode中的TextEdit實例

Xcode特別適合用于Cocoa開發。在創建工程時,Xcode可以通過對應于Cocoa工程類型的工程模板,為您建立一個初始的開發環境。Cocoa工程類型有:應用程序(Objective-C或Java)、基于文檔的應用程序(Objective-C或Java)、工具、程序包、和框架。Xcode使用GNU C編譯器(gcc)來編譯Cocoa軟件,使用GNU源代碼級調試器(gdb)來調試軟件。在Cocoa開發中使用gcc和gdb從它還是NeXTSTEP(參見"一點歷史"部分)的時代就開始了。對Cocoa二進制代碼的編譯和調試經過多年的精化、擴展、和調優。

Xcode也有一個類瀏覽的功能,可以查看所有導入的Cocoa框架類和您自己的定制類,還有它們的繼承關系;從類瀏覽器中,您可以請求查看任何類的文檔。Xcode還包含一些設計工具,其中有一個工具可以用于設計Core Data程序中使用的數據實體的屬性和關系。

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

請注意:簡單地說,插座變量(outlet)是一個對象和另一個對象的歸檔連接(表示為對象中的一個實例變量);動作則是當按鍵或滑塊這類對象被操作時,在被稱為目標(target)的對象(通常是一個定制對象)中被調用的方法。Interface Builder也會把目標對象和其它對象(稱為控件)之間的連接進行歸檔。

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

Interface Builder

Cocoa工程的第二個主要開發工具是Interface Builder。顧名思義,Interface Builder是用于創建用戶界面的圖形工具。Interface Builder在Cocoa還是NeXTSTEP的時候就已經存在了,而且從那時侯起,它就作為同類軟件中的佼佼者而獲得廣泛的認可。很自然,它和Cocoa的結合是很緊密的。而且您也可以用它來為Carbon應用程序創建用戶界面。

Interface Builder以三個主要的設計元素為中心:

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

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

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

選盤。 Interface Builder的選盤(Palette)窗口中包含多個面板,或者稱為“選盤”,每個選盤中包含一個彼此有關系的用戶界面對象的集合。將對象從選盤拖拽到恰當的位置上就可以創建用戶界面了,這里的位置可以是屏幕、窗口、各種視圖、或者主菜單(選盤對象自身不一定是可見的,但是必須以某種形式影響用戶界面)。當您將一個對象從選盤上拖出時,Interface Builder會實例化一個該對象的缺省實例。這個實例是一個真正的Cocoa對象,而不是運行時需要創建的實例的代理對象。如果您愿意的話,可以將您自己的定制對象放在選盤上。

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

下圖顯示了一個在Interface Builder中打開的nib文件,以及支持窗口。

 

TextEdit’s Preferences window in Interface Builder

 

Interface Builder中TextEdit的預置窗口

用Interface Builder創建用戶界面的步驟比較直接:

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

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

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

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

為應用程序定義定制類。

您可以直接在Interface Builder中完成這個工作,或者將事先創建好的頭文件裝載到Interface Builder。在進行類的定制時,可以通過Interface Builder指定插座變量和動作。

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

在應用程序的視圖、控制器、和模型對象之間建立綁定關系。

把插座變量連接到它們引用的對象,接著把動作連接到目標對象中合適的方法上。

保存和測試用戶界面。

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

為您定義的各個定制類創建頭文件和源代碼文件,這些文件會出現在關聯的Xcode工程上。

Interface Builder還包含一個功能:在對一個擺好位置的對象進行移動或調整其尺寸時,會通過一些短暫出現的藍線來顯示當前位置是否遵循Aqua人機界面指南,包括推薦的尺寸、對齊、與用戶界面上的其它對象或窗口邊界的相對位置。

進一步閱讀:有關用戶界面開發工具的進一步信息,請參見Interface Builder部分。此外,"Nib文件"部分給出了nib文件及其在應用程序中如何被使用的更多信息。您還可以參考"對象之間的通訊"部分,以概要了解插座變量、目標-動作機制、以及Cocoa綁定技術。#p#

AppleScript Studio

多年來,Mac OS一直有一個定義良好的特性,就是用戶可以通過由AppleScript語言寫成的腳本控制應用程序。很多用戶發現這個特性是不可或缺的,因為它可以將涉及多個應用程序的復雜操作序列串接在一起。AppleScript的能力在Mac OS X系統上更進了一步。AppleScript Studio是一種開發技術,用于創建通過AppleScript腳本控制復雜用戶界面的Cocoa程序。

AppleScript Studio把來自AppleScript、Xcode、Interface Builder、和Cocoa的各種元素結合起來,提供了一個創建AppleScript解決方案的開發環境。您可以通過它來制作應用程序,完成如下任務:

執行AppleScript腳本

控制應用程序的界面

控制具有腳本能力的應用程序或操作系統中支持腳本的部分

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

這個開發環境使我們有可能通過腳本對Script Editor程序(它是創建AppleScript腳本的傳統工具)不能提供的能力進行控制,這些能力包括:

創建任意大的腳本

在腳本中進行檢索和替代

單步腳本調試,支持各種執行方式

方便訪問腳本中的處理函數和屬性

靈活的字典查看器,和應用程序的腳本用語一起使用。

進一步閱讀:更多信息請參見AppleScript Studio編程指南。#p#

其它開發工具

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

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

性能工具

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

Sampler 用于分析程序運行時的行為和內存分配。顧名思義,Sampler會按一定的時間周期對程序的函數調用棧進行采樣,并在采樣結束時向您顯示調用頻率最高的函數或方法。這種信息有助于定位消耗大量CPU時間或進行內存分配的函數或方法。

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

MallocDebug 按分配時的調用棧順序顯示程序中當前已分配的內存塊。通過這個工具一下子就可以看到您的應用程序消耗多少內存、這些內存是從哪里分配的、以及哪些函數分配了大量的內存。MallocDebug還可以找出在程序中分配的、卻沒有被引用的內存,因此可以幫助您發現內存泄露并跟蹤這些泄露的內存是在哪里分配的。

QuartzDebug 是一個幫助您對應用程序的顯示機制進行調試的工具,對大量進行描畫和圖像處理的應用程序特別有用。QuartzDebug包括如下幾個調試選項:

自動閃爍描畫模式,這種模式會在每個描畫操作之后閃爍一下圖形上下文。

在更新屏幕區域之前先用黃色對該區域進行描畫的模式。

用于取得整個系統的窗口列表的靜態快照,同時給出每個窗口的擁有者及該窗口消耗多少內存的選項。

Thread Viewer 顯示一個進程中各個線程的活動。這個工具顯示每個線程的活動時間線,動作在時間線上用不同的顏色表示。點擊時間線可以得到與點擊位置相對應的活動回溯樣本。

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

top,對當前正在運行的進程進行采樣統計并顯示統計結果。

gprof,用于產生程序的執行輪廓

fs_usage,顯示文件系統訪問的統計信息

還有其它很多命令行工具可以用于性能分析。有關Cocoa應用程序開發可以用哪些性能分析工具以及性能分析的概念、技術、和策略的更多信息,請參見性能編程主題(Performance Programming Topics)文檔。

請注意:性能概述對Mac OS X的性能工具進行討論。

其它工具

您還可以發現下面的工具對Cocoa應用程序開發很有用(位于/Developer/Applications目錄下):

Icon Composer和Icns Browser 您可以用Icon Composer來導入各種格式的圖像,創建應用程序圖標和文檔圖標的圖標文件;還可以用Icns Browser程序來創建不同尺寸、位深度、和位掩碼的圖標變體。

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

Package Maker 通過Installer程序為應用程序(其它類型的軟件)制作安裝包。

Property List Editor 這是一個編輯器,用于創建和編輯XML及較老風格的屬性列表。

責任編輯:佚名 來源: 蘋果官網
相關推薦

2011-06-15 17:02:02

CocoaiOS

2011-06-17 16:23:49

Cocoa蘋果

2011-06-17 15:38:15

Cocoa蘋果

2011-07-07 14:46:10

Cocoa Xcode

2011-07-26 15:14:24

蘋果 Cocoa 內存

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 對象 生命周期

2011-07-07 10:39:07

Cocoa 函數

2010-04-03 11:30:15

Widget開發

2011-07-07 10:50:09

Cocoa 框架

2017-05-25 12:30:44

AndroidApp開發架構

2011-07-07 14:10:21

Cocoa 內省 hash

2015-06-15 18:07:07

2011-06-15 16:11:51

UIKitCocoa TouchiOS

2011-08-11 15:46:55

CocoaCocoa Touch框架

2011-07-25 14:32:40

Cocoa 框架 函數

2011-09-05 14:02:53

Android視頻教程
點贊
收藏

51CTO技術棧公眾號

国产精品嫩草影院com| 国产精品福利网站| 亚洲精品aⅴ中文字幕乱码| 欧美一级在线看| 日韩一区二区三区精品视频| 超碰97久久| 欧美日韩激情四射| 欧美精品一区二区三区蜜桃视频 | 亚洲视频在线观看| 国产成人午夜视频| 日韩制服一区| 影音先锋欧美资源| 欧美大片日本大片免费观看| 激情欧美丁香| 黄色软件在线观看| 国产精品一区二区三区观看| 欧美三级午夜理伦三级中视频| 久久福利综合| 91福利电影| 成人h片在线播放免费网站| 成人免费小视频| 欧美裸体在线版观看完整版| 成人eeuss影院在线观看| 欧美丰满片xxx777| 一个色在线综合| 欧美黄色精品| 丝袜老师在线| 国产一级特黄a大片免费| 欧美重口另类videos人妖| 日本免费一二区| 国产欧美一区二区三区在线看| 欧美日韩国产乱码电影| 欧美日韩一本| jizzjizz亚洲中国少妇| 国产伦精品免费视频| 超碰97久久国产精品牛牛| 久久久综合亚洲91久久98| 亚洲国产精品va在线看黑人| 国产欧美久久久精品影院| 欧美国产一级| 中文字幕不卡三区视频| 亚洲久久中文字幕| 91香蕉视频在线下载| 最近中文字幕日韩精品| 色综合婷婷久久| 精品一区二区久久| 忘忧草精品久久久久久久高清| 日本精品600av| a视频在线看| 精品一区二区三区无码视频| 91精品中国老女人| 色诱女教师一区二区三区| 偷拍日韩校园综合在线| 国产一区二区三区不卡视频网站| 国产不卡在线| 激情综合网五月激情 | 日韩精品成人一区二区在线| 视频一区日韩| 成人做爰视频www网站小优视频| yy6080久久伦理一区二区| 在线观看成人一级片| 久久伊人色综合| 日韩精品中文字幕一区| 亚洲欧洲精品一区二区精品久久久| 亚洲在线网站| 欧美一区二区三区久久| 十八禁视频网站在线观看| 国产主播在线一区| 中文字幕精品久久| 欧美最猛性xxxxx直播| 国产在线观看免费一区| 视频一区视频二区视频三区高| 这里只有精品在线播放| 欧美精品一级二级三级| 亚洲免费成人av| 欧美成年网站| 在线中文字幕视频| 九色91popny| 免费高清一区二区三区| 色综合久久88色综合天天提莫| 国产精品欧美在线| 欧美大秀在线观看| 亚洲男人天堂久| 激情亚洲综合在线| 亚洲黄色av| 色棕色天天综合网| 另类尿喷潮videofree| 国产精品一区hongkong| 欧美精品hd| 国产激情小视频在线| av网站在线播放| 男人插曲女人视频免费| 国产成人在线小视频| 四虎永久免费网站| 亚洲欧美国产精品桃花| 欧美午夜激情在线| 国产一二三四区在线观看| 成人免费观看网站| 成人黄色网免费| 成人免费在线看片| 亚洲一区二区久久久久久| 国产成人精品日本亚洲专区61| 中文字幕无线精品亚洲乱码一区| 九九精品在线观看| 色偷偷噜噜噜亚洲男人| 北条麻妃99精品青青久久| 这里只有精品视频在线| 一区二区三区美女xx视频| 欧美精品一区二区三| 亚洲国产欧美一区二区三区同亚洲 | 亚洲女厕所小便bbb| 亚洲欧美色图小说| 成人免费三级在线| 澳门成人av网| 色呦呦在线资源| 激情校园亚洲图片| 国产高清精品在线观看| 美女喷白浆视频| 毛片在线免费| 色呦呦在线资源| 成人精品电影在线| 日韩精品网站| 国产美女精品一区二区三区| 色多多在线观看| 综合久久成人| 亚洲综合婷婷| 美女视频一区在线观看| 亚洲乱码日产精品bd| 精品久久久久一区二区国产| 久久久久免费视频| 秋霞久久久久久一区二区| 大伊香蕉精品视频在线| 免费一级毛片在线观看| 欧洲av一区二区| 乱人伦精品视频在线观看| www.欧美精品一二区| 国产日本一区二区| 日韩一区二区三区四区五区六区| 日本国产欧美一区二区三区| 国产综合在线看| 欧美影视一区二区| 一级二级在线观看| 日韩三级精品| 国内精品嫩模av私拍在线观看| 国产日韩欧美精品一区| 亚洲欧美日韩精品| 26uuu另类亚洲欧美日本一| 国产又黄又爽免费视频| 二人午夜免费观看在线视频| 妺妺窝人体色www看人体| 日本孕妇大胆孕交无码| 精品香蕉视频| 一区二区三区精品| 69av成年福利视频| 国产对白在线播放| 中文字幕在线观看日本| 欧洲在线一区| 日本视频中文字幕一区二区三区| 欧美丝袜美女中出在线| 国产精品永久在线| 在线看国产视频| 成人精品国产| 成人羞羞视频播放网站| 国产午夜精品一区二区三区欧美| 最新国产乱人伦偷精品免费网站| 91香蕉视频黄| 国产精品一区二区久久久| 羞羞的视频在线看| 国产欧美日韩综合精品一区二区| 91久久国产婷婷一区二区| 免费国产视频| 久久久一本精品99久久精品66| 国产露出视频在线观看| 国模一区二区三区白浆| 亚洲成人在线网| 国产三级香港三韩国三级| 最近最新mv在线观看免费高清| 影音先锋中文字幕一区| 另类图片亚洲另类| 国内精品一区视频| 26uuu亚洲综合色欧美| 久久999免费视频| 97超碰资源站在线观看| 国产精品久久久久7777按摩| 欧洲亚洲一区二区| 在线看成人短视频| 欧美日韩极品在线观看一区| 成全视频全集| 国产aⅴ综合色| 97久久人人超碰caoprom欧美| 91天天综合| 欧美一区二区精品在线| 99视频在线免费播放| 国产精品一区二区免费福利视频 | 久久毛片亚洲| 欧美日韩中文字幕综合视频| 奇米777四色影视在线看| 99在线|亚洲一区二区| 欧美性受xxx| 成人1区2区|