第一次接觸蘋果手機是在個人同窗家裏,他用的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 相似。
功能:
CMD + N: 新文件; CMD + SHIFT + N: 新項目; CMD + O: 打開;
CMD + S: 保存; CMD + SHIFT + S: 另存爲;
CMD + W: 關閉窗口; CMD + SHIFT + W: 關閉文件
CMD + \: 設置或取消斷點;
CMD + OPT + \: 容許或禁用當前斷點;
CMD + OPT + B: 查看所有斷點;
CMD + RETURN: 編譯並運行(根據設置決定是否啓用斷點);
CMD + R: 編譯並運行(不觸發斷點);
CMD + Y: 編譯並調試(觸發斷點);
CMD + SHIFT + RETURN: 終止運行或調試;
CMD + B: 編譯;
CMD + SHIFT + K: 清理;
衆所周知,在構建中引進多重處理器能夠提升速度,Xcode 能幫你實現這個明顯的結論。利用支持 Rendezvous 的分佈式構建功能,能夠輕易地把編譯工做量分散到閒置的電腦上來寄放構建,或者更好是在單獨的電腦上開發一個專門的 Xserve 構建寄放區,快速處理那些耗時的任務。
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 裏衆多其它的工具協做,例如綜合用戶界面結構應用程序;編譯器如 gcc、javac 和jikes;還有調試工具如 gdb。
另外,你能夠用 AppleScript Studio 組增長一個 Aqua 界面到系統和應用程序腳本、命令行工具、以及網絡應用程序中。以上三者不管如何都能在任何平臺組合成最強大的腳本環境。
調試全屏幕應用程序(好比遊戲)具備很大的挑戰性。將調試窗口放在什麼位置呢?有了 Xcode 2.0 的繪圖遠程調試,全部強大的 Xcode 調試功能(例如數據格式程序、Fix、Continue)均可以在遠程機器上用來調試應用程序。利用與遠程調試階段的加密鏈接,Xcode 能夠保證你的數據安全。
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;
打開 Xcode 並選擇建立新project : 彈出菜單中選擇 IOS --> Single View Application project;
填寫項目信息 :
-- Product Name : 項目名稱;
-- Organization Name : 公司標識;
-- Class Prefix : 爲了不用戶定義類與 Object-C 類命名衝突問題, 在每個類以前都加上這個前綴;
-- Devices : 選擇應用運行的設備, Universal 表示同事兼容 ipad 和 iphone;
程序運行相關 :
-- 從左至右介紹 : 運行button, 中止button, 爲project選擇運行平臺;
編輯器相關 :
-- 從左至右介紹 : 標準編輯器, 輔助編輯器, 版本號編輯器;
面板控制相關 :
-- 從左至右介紹 : 隱藏左側面板, 隱藏底部面板, 隱藏右側面板;
面板介紹 : 該面板是 Xcode project導航面板, 上方的七個button用於切換導航模式;
面板介紹 : 用於 Xcode 顯示 控制檯調試輸出信息;
檢查器面板 : 依據項目的不一樣, 包括大量審查器;
庫面板 :
-- 庫面板簡單介紹(從左至右) : 文件模板庫, 代碼片斷庫, 對象庫, 媒體庫;
該區域是代碼編寫主要區域 :
導航面板簡單介紹 :
-- 從左至右 : 項目導航, 符號導航, 搜索導航, 問題導航, 測試導航, 調試導航, 斷點導航, 日誌導航;
項目導航組成 :
-- 源文件 : 在 HelloWorld 文件夾下的 ".h" 和 ".m" 後綴文件是源文件;
-- 屬性文件 : 在 HelloWorld 下的 Supporting Files 文件夾下是屬性文件 圖片等;
-- 單元測試項目 : HelloWorldTest 是project的單元測試項目;
-- 目標應用 : Products 文件夾下的 HelloWorld.app 是目標應用;
符號導航簡單介紹 : 用符號顯示project中的 類, 項目 和 屬性;
-- 表示方式 : C 表示類, M 表示方法, P 表示屬性;
-- 高速定位 : 點擊相應的方法或者屬性, 能高速定位到這個類中;
搜索導航簡單介紹 : 在搜索框中輸入要搜索的字符串, 按回車就可以搜索出包括該字符串的類;
問題導航面板簡單介紹 : 顯示項目中存在的警告或者錯誤;
測試導航簡單介紹 : 點擊 testExample 後面的運行button, 就會運行該單元測試;
調試導航簡單介紹 : 調試導航面板中顯示了各線程的具體信息;
加入斷點 : 在 OCTViewController.m 中加入一個斷點;
開始調試(本身主動推斷) : 點擊頂部面板中的調試button, 假設代碼中有斷點, 就會本身主動進入調試狀態, 運行到斷點時會本身主動中止, 具體調試信息顯示在底部的調試輸出面板;
調試面板介紹 : 如下從左至右介紹;
-- Continue program execution : 繼續運行如下的代碼;
-- Step over : 單步調試, 點擊一次該button, 運行一行代碼, 假設有方法調用, 不會進入方法中;
-- Strp in : 步入調試, 點擊該button, 會進入方法中;
-- Step out : 步出調試, 在方法中, 點擊該button, 會退出方法, 運行方法外的單步調試;
斷點導航簡單介紹 : 列出所有的斷點, 方便管理斷點;
日誌導航簡單介紹 : 列出項目開發過程當中 構建, 生成, 運行過程, 每次該過程都可以經過日誌面板查看;
檢查面板分類 :
-- 普通源文件 : 包括 文件檢查器 和 高速幫助器;
-- 故事版 : 界面文件, 除了文件檢查器 和 高速幫助器以外, 還有 身份檢查器, 屬性檢查器, 大小檢查器, 鏈接檢查器;
文件檢查器 :
-- Identity and Type : File Name(文件名稱), File Type(文件類型), Full Path(路徑);
-- Text Settings : Text Encoding(文件編碼使用字符集), Indent Using(縮進), Wrap lines(本身主動換行);
高速幫助器 : 將光標停留在系統類的時候, 該面板會顯示該類的 參考手冊, 使用指南 和 演示樣例代碼;
界面設計相關檢查器 : 用戶選中 ".storyboard" 或者 ".xib" 後綴的文件時, 會多出另外四個檢查器;
-- 身份檢查器 : 管理界面組件類 實現類, 恢復ID 等標識性的屬性;
-- 屬性檢查器 : 管理界面組件 拉伸方式, 背景色 等屬性;
-- 大小檢查器 : 管理界面組件 寬高 xy軸座標 等屬性;
-- 鏈接檢查器 : 管理界面組件 與程序代碼之間的關聯性;
庫面板簡單介紹 : 從左至右介紹;
-- 文件庫模板 : 管理文件模板, 可以高速建立指定類型文件, 可以直接拖入項目中;
-- 代碼片斷庫 : 管理各類代碼片斷, 可以直接拖入源代碼中;
-- 對象庫 : 界面組件, 可以直接拖入 故事板中;
-- 媒體庫 : 管理各類 圖片, 音頻 等多媒體資源;
幫助系統做用 : Object-C 開發中需要調用很是多系統的類, 需要了解每個類的 使用方法, 經過 Xcode 幫助系統可以查詢這些類的使用方法;
右面板中的高速面板顯示內容 : 該類繼承的父類, 遵循的協議, 類所在框架, 點擊Reference 中的連接, 可以進入類的具體介紹;
類具體介紹頁面 : 經過 高速幫助面板 中的 Reference 中的連接, 可以進入該頁面;
類方法分類界面 : 該界面與具體介紹界面是同一個, 下拉就能夠;
搜索 : 經過隨意連接進入類具體介紹界面以後, 可以在上方的輸入框中輸入keyword, 就能夠搜索相關的 類, 方法, 協議 或者 函數;
提示方式 : 代碼編輯區域, 按住 option 鍵, 而後將光標移動到類上, 會變成問號, 點擊就會出現如下的提示框;
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";
程序源代碼 :
/* 導入 Foundation 框架下的 Foundation.h 文件 */ #include <Foundation/Foundation.h> /* 程序入口函數 */ int main(int argc, char * argv[]) { /* 本身主動釋放池, 該環境中運行的語句會本身主動回收所建立的對象 */ @autoreleasepool { /* Foundation 中的輸出函數, 可輸出字符串, 對象等 */ NSLog(@"Hello World"); /* @"Hello World", 加上 @ 是爲了與 C 中的字符串區分 */ } return 0; }
導入頭文件語句 : #import <a/b.h> 是導入 a 框架 中的 b.h 頭文件;
框架簡單介紹 : 框架是 一系列類 函數的集合, Cocoa QuickTime 都被封裝成了框架, Cocoa 包括了 Foundation 和 Application Kit 等組件;
內存管理 : 在早期的 Object-C 需要手動管理內存的分配和回收, Object-C 2.0 引入了 ARC(本身主動引用計數) 和 本身主動釋放池, 不在進行手動內存管理;
本身主動釋放池 : 使用 "@autoreleasepool{}" 包裹的代碼位於 Object-C 的本身主動釋放池中, 這些語句會本身主動回收建立的對象, 不用進行手動的內存管理;
NSLog()函數 : 該函數是 Foundation 框架提供的一個函數, 該函數可以輸出 字符串 對象等;
-- NS 前綴說明 : Cocoa 框架中所有的 類 函數 常量 都會加上 NS 前綴;
-- @"string" 說明 : @符號 用於區分 Object-C 與 C語言字符串, 加上 @ 符號的時 Object-C 字符串;
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