iOS開發(fā)工具Xcode 4的新特性
Xcode 是用于構(gòu)建 Mac OS X 及 iOS 應(yīng)用程序的完整工具集 - Xcode 4 的工具經(jīng)過重新設(shè)計(jì),它們的性能更優(yōu)秀、使用更容易,能帶給用戶前所未有的助益。Xcode IDE 能夠理解所有的工程細(xì)節(jié),可以識(shí)別代碼中的語法及邏輯錯(cuò)誤,甚至能夠幫助您修正代碼中的錯(cuò)誤。 簡言之,Xcode 4 能夠幫助您編寫更好的代碼。
Xcode 4 具有全新的用戶界面,而且它賴以構(gòu)建的技術(shù)也得到了充分的驗(yàn)證。一方面,蘋果公司自身就是通過這些技術(shù)構(gòu)建 Mac OS X 以及 iOS;再者,開發(fā)者利用這些技術(shù)已生產(chǎn)出超過 25 萬個(gè) Mac OS X 及 iOS 應(yīng)用程序。
單窗口
如果是有經(jīng)驗(yàn)的 Xcode 用戶,則首先會(huì)注意到 Xcode 4 把以前執(zhí)行日常開發(fā)任務(wù)的多個(gè)窗口合并成一個(gè)。Xcode 4 的工作區(qū)含有數(shù)個(gè)極具特色的 UI 元素。有了它們,操作多個(gè)不同任務(wù),甚至多個(gè)工程就變得非常容易,再也不會(huì)把工作區(qū)弄得凌亂不堪。在使用 Xcode 4 的過程中,編輯器總是位于屏幕前方中心處。

導(dǎo)航器
Xcode 4 的左邊是一些導(dǎo)航器,包括一個(gè)工程文件列表、已排序的符號、一個(gè)居中的搜索界面、正在跟蹤的問題、帶有可壓縮棧紀(jì)錄的調(diào)試數(shù)據(jù)、激活及未及激活的斷點(diǎn)以及一些可以長期保存的日志。通過這些導(dǎo)航 UI 聯(lián)合在一起,用戶便可對工程的內(nèi)容以及搜索結(jié)果進(jìn)行實(shí)時(shí)過濾,這樣就可以把精力集中于當(dāng)前的任務(wù)。
跳轉(zhuǎn)欄
編輯面板上方是路徑欄,它顯示當(dāng)前文件的相對位置。點(diǎn)擊路徑中的某一位置就可立刻跳轉(zhuǎn)到對應(yīng)路徑層次的其他文件。這一功能即所謂的跳轉(zhuǎn)欄,當(dāng)您將整個(gè)桌面用于顯示編輯源代碼,跳轉(zhuǎn)欄可有效應(yīng)用于不同文件的快速跳轉(zhuǎn)。
內(nèi)置的 Interface Builder
在 Xcode 4 中,Interface Builde 已徹底整合至 Xcode IDE - 不再是獨(dú)立的應(yīng)用程序。
選取一份工程中的界面文件(具有 .nib/.xib 后綴的文件)就能打開 Xcode 的 IB 編輯器。打開右手邊的工具區(qū),就可以看到整個(gè)界面觀察器、控件庫以及 UI 對象。在開發(fā) Mac OS X 或者 iOS 應(yīng)用程序的時(shí)候,您可以從控件庫拖出控件, 將之放置在程序的畫布上,并可設(shè)定它的位置,從而實(shí)現(xiàn)程序的布局。
最好的功能:您可以直接把連接從 UI 設(shè)計(jì)區(qū)域拖到源代碼區(qū)域。Xcode 4 新型的分隔式編輯器布局大大簡化動(dòng)作和插座變量的編寫。只要把連接拖到現(xiàn)有的代碼即可-一個(gè)手勢即可搞定。如果還沒有編寫連接所需要的代碼呢?在這種情況下,Xcode 將會(huì)為您創(chuàng)建一個(gè)新的插座變量或動(dòng)作。只要將連接拖動(dòng)至源文件的空白區(qū)域,Xcode 就能生成相應(yīng)代碼。

Assistant
不管是編寫代碼還是設(shè)計(jì)界面,任何修改都不可能孤立變化。哪怕是一個(gè)最小的編輯動(dòng)作,都可能在工程中產(chǎn)生級聯(lián)效應(yīng)。通常情況下,您不僅需要看到當(dāng)前文件,還需要看到與之相關(guān)的文檔。

Xcode 4 的雙面板編輯器布局搭配上 Xcode Assistant 之后,其功能強(qiáng)大得讓人驚訝。當(dāng)您在工作的時(shí)候打開 Assistant,IDE 會(huì)預(yù)測您需要查看那些其他的文件。如果您正在編輯一個(gè)新的派生類,Assistant 將會(huì)為您顯示父類代碼。如果您正在編寫新的實(shí)現(xiàn)代碼,Assistant 會(huì)自動(dòng)為您顯示頭文件。如果您正在設(shè)計(jì)一個(gè)界面,Assistant 會(huì)自動(dòng)為您顯示恰當(dāng)?shù)目刂破鳎@樣可以讓拖放代碼連接變得極其簡單。如果您正在設(shè)計(jì)數(shù)據(jù)模型,Assistant 又會(huì)把一些可支持模型的類顯示在您眼前 - 一切都自動(dòng)進(jìn)行。
Apple LLVM 編譯器 2.0
Apple LLVM 是下一代編譯器技術(shù),它是 Xcode 4 如此強(qiáng)大的力量之源。Apple LLVM 以 LLVM.org 項(xiàng)目為基礎(chǔ),該項(xiàng)目是蘋果的工程師領(lǐng)導(dǎo)的優(yōu)秀的開源項(xiàng)目。此外,Apple LLVM 編譯器采納最新的思想,并針對 iPhone、 iPad 以及多核 Mac 進(jìn)行優(yōu)化。
Apple LLVM 執(zhí)行速度很快,其編譯代碼的速度比 GCC 快兩倍,生成應(yīng)用程序運(yùn)行速度也更快(相比 GCC 生成的應(yīng)用程序)。整個(gè)編譯器被構(gòu)建成為一組高度優(yōu)化的庫,使用方便且易于優(yōu)化,并專門針對當(dāng)前最新的芯片架構(gòu)進(jìn)行設(shè)計(jì)。在 Xcode 4 當(dāng)中,整個(gè) Apple LLVM 編譯器棧—從千對解析器到后端代碼優(yōu)化器—都對 C、 Objective-C 以及 C++ 有極佳的支持。
Xcode 4 的語法高亮、代碼補(bǔ)全以及其他所有的索引驅(qū)動(dòng)的功能都通過 LLVM 解析器進(jìn)行處理。編譯器知道的符號, Xcode IDE 都知道。它在代碼編輯期間就對于 C、 Objective-C 以及 C++ 有很好的理解。其精確程度不遜于鏈編期編譯器對它們的理解。
Fix-it 和 Live Issues
Apple LLVM 引擎會(huì)在后臺(tái)不斷地分析您寫的代碼,理解其含義。在您輸入代碼的時(shí)候, 編輯器新增的 Live Issues 功能可以利用引擎對代碼的理解,向您報(bào)告編碼錯(cuò)誤。其工作方式與文字處理工具高亮拼寫錯(cuò)誤類似,不需要先點(diǎn)擊 ‘build’命令,便可高亮出常見的編碼錯(cuò)誤。
自動(dòng)修正錯(cuò)誤
IDE 非常聰明,不僅能夠報(bào)告錯(cuò)誤,甚至可以修改錯(cuò)誤。在許多情況下, Xcode 除了報(bào)告錯(cuò)誤,還向您提供解決方案。只要點(diǎn)擊其報(bào)告的錯(cuò)誤,就可以看到它提供的解決辦法,例如把賦值符號修改為比較操作,修正某個(gè)拼寫有誤的符號或者添加一個(gè)缺失的分號。只需按一個(gè)鍵盤快捷鍵就可立即修正錯(cuò)誤,然后繼續(xù)編碼。

Fix-it 指 Analyze 會(huì)在您輸入代碼的同時(shí)執(zhí)行嚴(yán)格檢測,這是一種極其有用的功能。 Xcode 靜態(tài)分析器將會(huì)遍歷成千上萬條代碼路徑,查找不具有預(yù)期行為的代碼(在代碼合乎語法規(guī)則的前提下),例如查找代碼是否有內(nèi)存分配錯(cuò)誤,是否存在永遠(yuǎn)不會(huì)被運(yùn)行的聲明,是否有未正確構(gòu)造的循環(huán)。
只要把 Fix-it 和 Xcode Analyze 的功能結(jié)合起來,您發(fā)現(xiàn)程序錯(cuò)誤的時(shí)間將遠(yuǎn)遠(yuǎn)早于用戶。
版本編輯器
通過使用 Xcode 4 的版本編輯器,在一個(gè)實(shí)時(shí)編輯器同時(shí)查看任意兩個(gè)版本的源代碼變得易如反掌。更重要是,版本編輯器是在 IDE 中對源代碼進(jìn)行控制管理的新方式,因?yàn)楸容^視圖同時(shí)也是一條時(shí)間軸,拖動(dòng)視圖中間的滑動(dòng)條,您就可以按時(shí)間回溯工程,比較任意兩個(gè)版本的源代碼。
版本編輯器也可以向您顯示已發(fā)生事件的詳細(xì)日志,可以對 check-in 責(zé)任進(jìn)行追蹤。很多復(fù)雜的 SCM 命令都由它在幕后管理,不需要您操心。它甚至可以在一個(gè) Xcode 4 工作空間中管理多個(gè)工程(例如,它可以管理兩個(gè)分別由不同版本控制系統(tǒng)管理的工程,一個(gè)由 Subversion 管理,另一個(gè)則由 Git 管理),并且所有的工程能夠自動(dòng)更新。
新調(diào)試器
Xcode 4 引入 LLDB,這是一個(gè)全新的調(diào)試引擎,由蘋果公司捐獻(xiàn)給 LLVM.org 開源項(xiàng)目。和 LLVM 類似,LLDB 引擎從一開始就被設(shè)計(jì)成為消耗內(nèi)存非常少且具有極佳性能的應(yīng)用。
新的 LLDB 調(diào)試引擎可以和 Xcode 4 的調(diào)試界面完美結(jié)合。在程序運(yùn)行的時(shí)候,導(dǎo)航器會(huì)向您顯示棧紀(jì)錄。在調(diào)試的時(shí)候,您可以對棧紀(jì)錄進(jìn)行擴(kuò)展或壓縮,以此來顯示或隱藏棧幀。在單步運(yùn)行的時(shí)候,您甚至可以鎖定某個(gè)線程,然后再點(diǎn)擊“continue”,這樣可以跟蹤特定線程的執(zhí)行。在 Xcode 4 里面,多核調(diào)試和具有代碼塊以及 Grand Central Dispatch 的多核編碼同樣簡單。
Xcode 4 的儀器
儀器、跳轉(zhuǎn)欄以及 Xcode 4 UI 中的棧壓縮都具有最新式的界面。通過 Xcode4 的新啟動(dòng)方案,開發(fā)者很容易就能為運(yùn)行在儀器中的程序創(chuàng)建一套健全測試裝置。新的啟動(dòng)方案包括以“延時(shí)模式”啟動(dòng)儀器,不讓收集數(shù)據(jù)的界面顯示在屏幕上,把系統(tǒng)資源節(jié)省下來留給運(yùn)行和計(jì)量應(yīng)用程序所需。
Xcode 4 新增了一些數(shù)據(jù)收集儀器,包括用于跟蹤 iPhone 圖形性能的 OpenGL ES 儀器,可發(fā)現(xiàn)非預(yù)期內(nèi)存增長的內(nèi)存分配監(jiān)視儀器,只需要很低消耗便可收集數(shù)據(jù)樣本的 iOS 系統(tǒng) Time Profiler,用于了解所有系統(tǒng)進(jìn)程如何交互的 System Trace。
不同功能的儀器正在增多,而且它們耗費(fèi)的系統(tǒng)資源越來越少,因而,能夠帶給用戶前所未有的助益。