懶惰是富有最大的敵人,再不前進,我們就out了。最近工作比較輕松,不是很忙。於是想晚上下班回家學習點新東西。看着蘋果大軍的一天天壯大,心里也是癢癢的。於是就想先系統的學習下Objective-C,為之后學習ios編程開發提前打好基礎,做好准備。
大家學習Objective-C的主要目的都是為了能更好的進行IOS項目的開發。那么,Objective-C的學習開發要什么條件呢?要么就是用Linx系統下編寫Objective-C,然后下載sdk,設置好運行環境。具體操作網上應該有教程。還有最理想的狀態就是在蘋果系統上開發了。
用蘋果系統的話,一般都是用蘋果電腦開發。但是蘋果機子價格昂貴,讓屌絲們都望塵莫及,無形中提高了門檻。但是,是不是PC機就不能進行蘋果開發,就不能學習Objective-C了呢。當然不是,我們完全可以通過在windows系統中安裝一個蘋果系統的虛擬機(不過這個對電腦的配置要求比較高,一般至少要給虛擬機分配4G內存才能跑起來)。或者是格出盤來進行安裝蘋果系統,也就是我們說的黑蘋果。
具體安裝的方法網上一搜一大堆,這里就不介紹了。我用的是在電腦中安裝虛擬機開發。因為之前安裝過黑蘋果,由於那個驅動要一個個找,太費勁,而且想用下windows系統還的關機進另一個系統,不是很方便。
本系列博文是個人在一邊學習
《Objective-C基礎教程》這本書,一邊自己寫代碼,並將心得體會記錄下來和大家一起分享。相信此類博文發表的已經很多了,由於也是初學者,很多講的不對的地方,大家發現了請狠狠的批評斧正。寫本系列的初衷就是記錄下學習的歷程,和大家一起學習和進步。
好了,言歸正傳,下面就開始和我一起踏上Objective-C開發之旅吧。
前期准備
1. vmware10 安裝 Mac OS X 10.9 虛擬機
(打mac補丁,然后下載了虛擬機鏡像包,用懶人安裝法。直接替換新建的虛擬機文件,配置后搞定。)
2. 安裝vmware tools,設置共享文件夾
(使得虛擬機和主機可以來回切換、設置分辨率,能共享文件。具體操作請教度娘)
(使得虛擬機和主機可以來回切換、設置分辨率,能共享文件。具體操作請教度娘)
3. 下載 xcode 5.1.1dmg 鏡像。
(安裝即可,前期准備就緒)
(安裝即可,前期准備就緒)
新建項目嘗試
1. 新建 command tools -> 選擇類型選擇 “Foundation”, 如圖:


即可用命令行寫objective - c代碼。
默認有個main.m 文件,有個Hello world 的函數。可以嘗試下如何調試,設置斷點等。
默認有個main.m 文件,有個Hello world 的函數。可以嘗試下如何調試,設置斷點等。
下面貼上基本常用的快捷鍵,供參考:

基本類型的使用
布爾類型(BOOL,返回值為:YES和NO)
字符串類型(NSString,定義函數的時候要用 * 符號)
由於第一篇的內容比較簡單,主要以配置環境和新建項目為主。好了,接下來就直接上代碼。
1 // 2 // main.m 3 // ch1 4 // 5 // Created by pcbeta on 14-11-14. 6 // Copyright (c) 2014年 julian. All rights reserved. 7 // 8 9 #import <Foundation/Foundation.h> 10 11 BOOL areIntsDifferent (int thing1, int thing2) 12 { 13 if (thing1 == thing2) 14 { 15 return (NO); 16 } 17 else 18 { 19 return (YES); 20 } 21 } //最基本的判斷兩個變量是否不同的函數。如果相同,返回NO;如果不同,返回YES 22 23 NSString *boolString(BOOL yesNO) 24 { 25 if(yesNO == NO) 26 { 27 return (@"NO"); 28 } 29 else 30 { 31 return (@"YES"); 32 } 33 } //在函數前面要添加 “*”號。表示返回的內容是字符串。 34 35 36 int main(int argc, const char * argv[]) 37 { 38 39 // @autoreleasepool { 40 // 41 // // insert code here... 42 // NSLog(@"Hello, World!"); 43 // 44 // } 45 46 BOOL areTheyDifferent; 47 int v_thing1 = 5; 48 int v_thing2 = 5; 49 //函數調用 50 areTheyDifferent = areIntsDifferent(v_thing1, v_thing2); 51 //輸出結果 52 NSLog(@"Are %d and %d different? %@", v_thing1, v_thing2, boolString(areTheyDifferent)); 53 54 //定義第三個變量 55 int v_thing3 = 10; 56 //重新賦值 57 areTheyDifferent = areIntsDifferent(v_thing1, v_thing3); 58 //輸出結果 59 NSLog(@"Are %d and %d different? %@", v_thing1, v_thing3, boolString(areTheyDifferent)); 60 61 return 0; 62 }
運行結果: