作者 : 韓曙亮
轉載請注明出處 : http://blog.csdn.net/shulianghan/article/details/38424965
一. Xcode 環境安裝 與 project創建
1. 下載環境
相關資源下載 :
-- IOS 相關資料下載頁面 : https://developer.apple.com/devcenter/ios/index.action ;
-- Xcode 下載頁面 : https://developer.apple.com/xcode/downloads/ ;
2. 創建 Object-C 程序
進入主界面方式 : 打開 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