細談xcode集成開發環境----個人筆記

    第一次接觸蘋果手機是在個人同窗家裏,他用的iPhone 5,不過如今蘋果手機已經升級iPhone 6啦。 java

    他說,蘋果手機就是不同,就是任性。 ios

  Mac操做系統 聊天用aim,相似於國內QQ,圖片設計用iPhoto,相似於國內Photoshop,web設計用iweb,相似於國內的Dreamweaver。還有蘋果商店,蘋果音樂itunes。。。。。。 程序員

   蘋果,apple的理念就是不同,也許Steve jobs是就是受上帝啓發開發MAC,聽說英國科學家牛頓經過蘋果落地發現萬有引力定律,接着便發現牛頓第一,第二定律。。。。。。他的靈感也來自於上帝。 web

     其中蘋果系統與Windows系統最大的不一樣,就是集成開發環境。 數據庫

   蘋果系統用xcode,而國內用visual studio,微軟集成開發環境。我一直使用visual studio編程。接觸xcode集成開發環境,也許是同窗的要求,他之前學過Android手機開發,與c#項目開發,如今改學蘋果編程。他說作蘋果程序員,工資待遇高,高於學Android,PHP語言。 編程

初探xcode c#

Xcode是蘋果公司向開發人員提供的集成開發環境(非開源),用於開發Mac OS X、iOS的應用程序。 其前身是繼承自NeXT的Project Builder,運行於蘋果公司的Mac操做系統下。Xcode 2.0 是開發人員創建OS X 應用程序的最快捷方式,也是利用新的蘋果電腦公司技術的最簡單的途徑。Xcode 2.0 將OS X 的輕鬆使用,UNIX 能量以及高性能的開發技術集合在一塊兒。
xcode


  introduction 安全

Xcode前身是繼承自NeXT的Project Builder。 網絡

The Xcode suite 包含有GNU Compiler Collection自由軟件 (GCC、 apple-darwin9-gcc-4.0.1 以及 apple-darwin9-gcc-4.2.1, 默認的是第一個),並支持 C語言、C++、Fortran、Objective-C、Objective-C++、Java、AppleScript、Python以及Ruby,還提供Cocoa、Carbon以及Java等編程模式。合力廠商更提供了 GNU Pascal,Free Pascal, Ada, C#, Perl, Haskell 和 D語言。Xcode套件使用 GDB做爲其後臺調試工具。

Xcode也可被用爲iPhone OS的開發環境。

Xcode 4.0於2011年3月9日正式發行。該版本非Apple開發者註冊會員亦能從Mac App Store中付費下載, 收取US$4.99的費用。


Xcode主要版本是Xcode 4.5,支持iOS6,能夠在Mac App Store免費下載,亦可在iOS開發者計劃網站下載。

Xcode最新版本是Xcode 6

Xcode 3.0 是開發人員創建 Mac OS X 應用程序的最快捷方式,也是利用新的蘋果電腦公司技術的最簡單的途徑。Xcode 3.0將Mac OS X的輕鬆使用,UNIX 能量以及高性能的開發技術集合在一塊兒。

無論你用C、C++、 Objective-C 或Java編寫程序,在 AppleScript 裏編寫腳本,仍是試圖從另外一個奇妙的工具中轉移編碼,你會發現 Xcode 編譯速度極快。每次操做都很快速和輕鬆。

Xcode是蘋果公司向開發人員提供的集成開發環境(非開源),用於開發Mac OS X,iOS的應用程序。其運行於蘋果公司的Mac操做系統下。

無論你用C、C++、Objective-C或Java編寫程序,在AppleScript裏編寫腳本,仍是試圖從另外一個奇妙的工具中轉移編碼,你會發現 Xcode 編譯速度極快。每次操做都很快速和輕鬆。

蘋果公司爲用戶提供了全套免費的Cocoa程序開發工具(Xcode)。Mac OS X一塊兒發行,在蘋果公司官方的網站下載。與國內安裝visual studio 相似。

功能:

編譯器


Xcode 4 的核心部分是蘋果電腦公司下一代業界標準的 gcc編譯器gcc 4.0。新的編譯器利用許多先進的最優化技術幫你從現存編碼中得到更多性能。從超級計算世界借鑑來的自動向量化(Auto-vectorization)技術能夠幫助你釋放每臺 Intel 系統中速度引擎的能量,而不須要編寫向量化編碼。其餘的最優化工具則支持反饋定向的最優化,以及隱藏模塊分析。

快捷鍵



文件

CMD + N: 新文件; CMD + SHIFT + N: 新項目; CMD + O: 打開;

CMD + S: 保存; CMD + SHIFT + S: 另存爲;

CMD + W: 關閉窗口; CMD + SHIFT + W: 關閉文件



CMD + [: 左縮進;CMD + ]: 右縮進

CMD + CTRL + LEFT: 摺疊;CMD + CTRL + RIGHT: 取消折疊;

CMD + CTRL + TOP: 摺疊所有函數;CMD + CTRL + BOTTOM: 取消所有函數摺疊;

CTRL + U: 取消所有摺疊;

CMD + D: 添加書籤; CMD + /: 註釋或取消註釋;

CTRL + .: 參數提示; ESC: 自動提示列表


調試

CMD + \: 設置或取消斷點;

CMD + OPT + \: 容許或禁用當前斷點;

CMD + OPT + B: 查看所有斷點;

CMD + RETURN: 編譯並運行(根據設置決定是否啓用斷點);

CMD + R: 編譯並運行(不觸發斷點);

CMD + Y: 編譯並調試(觸發斷點);

CMD + SHIFT + RETURN: 終止運行或調試;

CMD + B: 編譯;

CMD + SHIFT + K: 清理;

海量內存


Xcode將賦予你建立諸如計算和渲染引擎應用程序的能力,這些應用程序使用64位內存定址。這很是適合數據集中的應用程序,其經過訪問內存中的數據運行速度更快,遠勝於磁盤訪問。Xcode將爲你提供工具來創建並調試適合 Intel Core i5, i7 和 Mac OS X Lion 的 32 或 64 位應用程序,還可讓你建立包含32位和64位執行能力的 Fat Binaries。

構建提速


衆所周知,在構建中引進多重處理器能夠提升速度,Xcode 能幫你實現這個明顯的結論。利用支持 Rendezvous 的分佈式構建功能,能夠輕易地把編譯工做量分散到閒置的電腦上來寄放構建,或者更好是在單獨的電腦上開發一個專門的 Xserve 構建寄放區,快速處理那些耗時的任務。

Java開發


Xcode 4 擁有衆多功能,爲 Java 開發人員賦予了更多的開發能力。利用改進的 Code Sense 索引及 Ant 項目模板,Java 用戶能夠繼續使用他們的標準 Java 包,並構建具備 Xcode 關鍵生產功能的工具。Java 代碼填充爲你提供類別名、方法、變量及其餘關鍵信息。在 Xcode 中建立 Java應用程序比以往更容易。

輸入轉移


由於 Xcode 支持 CodeWarrior 風格相關項目參考,因此能夠保證把 CodeWarrior 項目文件快速方便地轉移到 Xcode。由於 Xcode 兼容 CodeWarrior 風格在線編碼彙編,因此從 CodeWarrior 到 Xcode 轉變的消耗獲得下降, 也使得開發人員手動調整應用程序的臨界性能部分。蘋果電腦公司的 Mac OS X 綜合開發環境Xcode 爲各類類型的 Mac OS X軟件項目提供項目編輯、搜索和瀏覽,文件編輯,項目構建和調試設備等功能。

Xcode 可用來輔助開發應用程序、工具、架構、數據庫、嵌入包、核心擴展和設備驅動程序。Xcode 支持開發人員使用 C、 C++、Objective C、 AppleScript 和 Java。

Xcode 可以和 Mac OS X 裏衆多其它的工具協做,例如綜合用戶界面結構應用程序;編譯器如 gccjavac 和jikes;還有調試工具如 gdb

另外,你能夠用 AppleScript Studio 組增長一個 Aqua 界面到系統和應用程序腳本、命令行工具、以及網絡應用程序中。以上三者不管如何都能在任何平臺組合成最強大的腳本環境。

遠程調試


調試全屏幕應用程序(好比遊戲)具備很大的挑戰性。將調試窗口放在什麼位置呢?有了 Xcode 2.0 的繪圖遠程調試,全部強大的 Xcode 調試功能(例如數據格式程序、Fix、Continue)均可以在遠程機器上用來調試應用程序。利用與遠程調試階段的加密鏈接,Xcode 能夠保證你的數據安全

xcode項目實例:

建立 Object-C 程序,與visual studio建立C語言項目同樣,語法:hello world

start

進入主界面方式 : 打開 Xcode 以後, 可以使用 Xcode 菜單, 但是必須建立一個 Object-C project 或者 導入 一個 Object-C project才幹夠進入主界面;

-- 打開現有project : 點擊右邊的歷史記錄, 就可以打開現有的project;

-- 建立project : 點擊第一個 Create a new Xcode Project 就能夠建立一個新project;

-- 導入project : 點擊 Check out an existing project 可以導入一個已經建立的project;



建立一個命令行程序 : 選擇 建立project界面的 OS X --> Command Line Tool 程序, 即建立了一個命令行程序, Cocoa Application 是建立有界面的程序;

-- ios 項目 : ios項目是爲手機和平板開發的應用;

-- OS X 項目 : OS X 是爲 OS 操做系統建立的應用;



建立project : 註明 project名, 公司名稱, 類型;

-- Product Name : project名稱;

-- Organization Name : 組織名稱;

-- Type : 這裏選 Foundation, 這是 Object-C project;




3. 建立 IOS 項目


打開 Xcode 並選擇建立新project : 彈出菜單中選擇 IOS --> Single View Application project;



填寫項目信息 : 

-- Product Name : 項目名稱;

-- Organization Name : 公司標識;

-- Class Prefix : 爲了不用戶定義類與 Object-C 類命名衝突問題, 在每個類以前都加上這個前綴;

-- Devices : 選擇應用運行的設備, Universal 表示同事兼容 ipad 和 iphone;



二. Xcode 界面具體解釋


1. Xcode 界面簡單介紹




(1) 頂部區域 


程序運行相關 : 

-- 從左至右介紹 : 運行button, 中止button, 爲project選擇運行平臺;


編輯器相關 : 

-- 從左至右介紹 : 標準編輯器, 輔助編輯器, 版本號編輯器;


面板控制相關 : 

-- 從左至右介紹 : 隱藏左側面板, 隱藏底部面板, 隱藏右側面板;



(2) 左面板




面板介紹 : 該面板是 Xcode project導航面板, 上方的七個button用於切換導航模式;



(3) 底部面板




面板介紹 : 用於 Xcode 顯示 控制檯調試輸出信息;



(4) 右面板


檢查器面板 : 依據項目的不一樣, 包括大量審查器;


庫面板 : 


-- 庫面板簡單介紹(從左至右) : 文件模板庫, 代碼片斷庫, 對象庫, 媒體庫;



(5) 具體編輯區


該區域是代碼編寫主要區域 






2. 導航面板具體解釋


導航面板簡單介紹 : 

-- 從左至右 : 項目導航, 符號導航, 搜索導航, 問題導航, 測試導航, 調試導航, 斷點導航, 日誌導航;


(1) 項目導航




項目導航組成 : 

-- 源文件 : 在 HelloWorld 文件夾下的 ".h" 和 ".m" 後綴文件是源文件;

-- 屬性文件 : 在 HelloWorld 下的 Supporting Files 文件夾下是屬性文件 圖片等;

-- 單元測試項目 : HelloWorldTest 是project的單元測試項目;

-- 目標應用 : Products 文件夾下的 HelloWorld.app 是目標應用;



(2) 符號導航




符號導航簡單介紹 : 用符號顯示project中的 類, 項目 和 屬性;

-- 表示方式 : C 表示類, M 表示方法, P 表示屬性;

-- 高速定位 : 點擊相應的方法或者屬性, 能高速定位到這個類中;



(3) 搜索導航



搜索導航簡單介紹 : 在搜索框中輸入要搜索的字符串, 按回車就可以搜索出包括該字符串的類;



(4) 問題導航面板




問題導航面板簡單介紹 : 顯示項目中存在的警告或者錯誤;



(5) 測試導航



測試導航簡單介紹 : 點擊 testExample 後面的運行button, 就會運行該單元測試;



(6) 調試導航




調試導航簡單介紹 : 調試導航面板中顯示了各線程的具體信息;


加入斷點 : 在 OCTViewController.m 中加入一個斷點;



開始調試(本身主動推斷: 點擊頂部面板中的調試button, 假設代碼中有斷點, 就會本身主動進入調試狀態, 運行到斷點時會本身主動中止, 具體調試信息顯示在底部的調試輸出面板;



調試面板介紹 :  如下從左至右介紹;

-- Continue program execution : 繼續運行如下的代碼;

-- Step over : 單步調試, 點擊一次該button, 運行一行代碼, 假設有方法調用, 不會進入方法中;

-- Strp in : 步入調試, 點擊該button, 會進入方法中;

-- Step out : 步出調試, 在方法中, 點擊該button, 會退出方法, 運行方法外的單步調試;



(7) 斷點導航



斷點導航簡單介紹 : 列出所有的斷點, 方便管理斷點;



(8) 日誌導航



日誌導航簡單介紹 : 列出項目開發過程當中 構建, 生成, 運行過程, 每次該過程都可以經過日誌面板查看;





3. 檢查器面板


檢查面板分類 : 

-- 普通源文件 : 包括 文件檢查器 和 高速幫助器;

-- 故事版 : 界面文件, 除了文件檢查器 和 高速幫助器以外, 還有 身份檢查器, 屬性檢查器, 大小檢查器, 鏈接檢查器;


文件檢查器 : 


-- Identity and Type : File Name(文件名稱), File Type(文件類型), Full Path(路徑);

-- Text Settings : Text Encoding(文件編碼使用字符集), Indent Using(縮進), Wrap lines(本身主動換行);


高速幫助器 : 將光標停留在系統類的時候, 該面板會顯示該類的 參考手冊, 使用指南 和 演示樣例代碼;




界面設計相關檢查器 : 用戶選中 ".storyboard" 或者 ".xib" 後綴的文件時, 會多出另外四個檢查器;


-- 身份檢查器 : 管理界面組件類 實現類, 恢復ID 等標識性的屬性;

-- 屬性檢查器 : 管理界面組件 拉伸方式, 背景色 等屬性;

-- 大小檢查器 : 管理界面組件 寬高 xy軸座標 等屬性;

-- 鏈接檢查器 : 管理界面組件 與程序代碼之間的關聯性;



4. 庫面板



庫面板簡單介紹 : 從左至右介紹;

-- 文件庫模板 : 管理文件模板, 可以高速建立指定類型文件, 可以直接拖入項目中;

-- 代碼片斷庫 : 管理各類代碼片斷, 可以直接拖入源代碼中;

-- 對象庫 : 界面組件, 可以直接拖入 故事板中;

-- 媒體庫 : 管理各類 圖片, 音頻 等多媒體資源;



三. Xcode 幫助系統具體解釋


幫助系統做用 : Object-C 開發中需要調用很是多系統的類, 需要了解每個類的 使用方法, 經過 Xcode 幫助系統可以查詢這些類的使用方法;



1. 高速幫助面板




右面板中的高速面板顯示內容 : 該類繼承的父類, 遵循的協議, 類所在框架, 點擊Reference 中的連接, 可以進入類的具體介紹;


類具體介紹頁面 : 經過 高速幫助面板 中的 Reference 中的連接, 可以進入該頁面;



類方法分類界面 : 該界面與具體介紹界面是同一個, 下拉就能夠;



2. 直接搜索


搜索 : 經過隨意連接進入類具體介紹界面以後, 可以在上方的輸入框中輸入keyword, 就能夠搜索相關的 類, 方法, 協議 或者 函數;



3. 代碼本身主動提示


提示方式 : 代碼編輯區域, 按住 option 鍵, 而後將光標移動到類上, 會變成問號, 點擊就會出現如下的提示框;




四. Hello World 程序



1. 文件擴展名介紹


C語言源文件後綴 : ".c";

C++語言源文件後綴 : ".cc", ".cpp";

頭文件 : ".h";

Object-C源程序 : ".m";

Object-C++源程序 : ".mm";

C/C++/Object-C/Object-C++生成的中間文件 : ".o";

C/C++/Object-C/Object-C++生成的可運行文件 : ".out";



2. 程序源代碼及解析


程序源代碼 

/* 導入 Foundation 框架下的 Foundation.h 文件 */
#include <Foundation/Foundation.h>

/* 程序入口函數 */
int main(int argc, char * argv[])
{
	/* 本身主動釋放池, 該環境中運行的語句會本身主動回收所建立的對象 */
	@autoreleasepool
	{
		/* Foundation 中的輸出函數, 可輸出字符串, 對象等 */
		NSLog(@"Hello World"); /* @"Hello World", 加上 @ 是爲了與 C 中的字符串區分 */
	}
	return 0;
}


(1) 導入框架頭文件


導入頭文件語句 : #import <a/b.h> 是導入 a 框架 中的 b.h 頭文件;


框架簡單介紹 : 框架是 一系列類 函數的集合, Cocoa QuickTime 都被封裝成了框架, Cocoa 包括了 Foundation 和 Application Kit 等組件;



(2) 本身主動釋放池


內存管理 : 在早期的 Object-C 需要手動管理內存的分配和回收, Object-C 2.0 引入了 ARC(本身主動引用計數) 和 本身主動釋放池, 不在進行手動內存管理;


本身主動釋放池 : 使用 "@autoreleasepool{}" 包裹的代碼位於 Object-C 的本身主動釋放池中, 這些語句會本身主動回收建立的對象, 不用進行手動的內存管理;



(3) 字符串輸出


NSLog()函數 : 該函數是 Foundation 框架提供的一個函數, 該函數可以輸出 字符串 對象等;

-- NS 前綴說明 : Cocoa 框架中所有的 類 函數 常量 都會加上 NS 前綴;

-- @"string" 說明 : @符號 用於區分 Object-C 與 C語言字符串, 加上 @ 符號的時 Object-C 字符串;



3. 編譯運行代碼


LLVM Clang 編譯器語法 : clang -fobjc-arc -framwork 框架名稱 源程序 -o 輸出結果 ;

-- -fobjc-arc 參數 : 啓用 Object-C 的 ARC 本身主動技術功能;

-- -o 參數 : 假設不帶, 默認 輸出 a.out ;


編譯運行結果 : 

octopus-2:ios octopus$ clang -fobjc-arc -framework Foundation 01-HelloWorld.m 
octopus-2:ios octopus$ ls
01-HelloWorld.m	a.out
octopus-2:ios octopus$ ./a.out 
2014-08-10 00:22:55.670 a.out[3394:507] Hello World

能夠發佈軟件啦。

值得一提的是,在中國國內用Android系統的多,Windows系統的多,蘋果系統不多。

畢竟中國老百姓多,「民以食爲天」,蘋果彷佛永遠是貴族。xcode集成開發環境也不開源,也難以推廣。

adiOS

相關文章
相關標籤/搜索