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

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

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

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

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