前面咱們已經用了幾章內容進行C語言介紹,固然要經過幾篇文章完整的介紹C語言的知識是不太現實的,例如C語言的文件操做、內存申請等咱們都沒有重點介紹,固然核心知識點基本都已經提到了,後面有時間咱們會繼續擴充。今天咱們正式開始學習Objective-C,之後簡稱「ObjC」,ObjC是在C語言的基礎上加上了一層面向對象的特性,它徹底兼容C語言,甚至能夠混寫C++。它是Mac OS X和IOS的主要開發語言,從IOS發佈以後能夠說ObjC的地位呈直線上升趨勢,當前ObjC已是僅次於C語言、Java的第三大編程語言。今天咱們先簡單的看一下C語言的一些基礎內容:編程
打開Xcode,建立一個新項目框架
選擇命令行程序編程語言
選擇程序語言爲Ojbective-C並輸入項目名稱函數
選擇保存目錄學習
默認生成一個基本的項目結構ui
程序源代碼spa
// // main.m // Basics // // Created by Kenshin Cui on 14-2-1. // Copyright (c) 2014年 Kenshin Cui. All rights reserved. // #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... NSLog(@"Hello, World!"); } return 0; }
上面是經過Xcode建立的第一個ObjC程序,這是一個經典的「Hello,World!」。運行結果以下:操作系統
下面對上面的代碼作一下簡單解釋:命令行
NS實際上是NeXTSTEP縮寫,是喬布斯離開蘋果後在NeXT公司所開發的系統,這個操做系統在當時雖然沒有得到普遍認同,可是卻爲後面Mac OX奠基了基礎。3d
在ObjC中的基本數據類型除了C語言中的char、int、float、double以外還有:
// // main.m // Basics // // Created by Kenshin Cui on 14-2-1. // Copyright (c) 2014年 Kenshin Cui. All rights reserved. // #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { char a='a'; int b=1; float c=8.5; double d=8.5e+12; char e='a'; BOOL f=YES,g=NO; NSLog(@"a=%c,b=%i,c=%f,d=%f,e=%c,f=%i,g=%i",a,b,c,d,e,f,g); //結果:a=a,b=1,c=8.500000,d=8500000000000.000000,e=a,f=1,g=0 NSString *str=@"Hello,World!"; NSLog(@"str=%@",str); //結果:str=Hello,World! NSLog(@"object=%p",nil);//結果:object=0x0 } return 0; }
關於上面id類型在這裏不作過多的解釋,後面咱們會專門說到,下面列出經常使用格式符:
注意
1.在C或者ObjC中整形可使用%i也可使用%d來格式化,只有使用scanf()輸入的時候兩者纔有區別(因爲%d始終被編譯器解釋爲decimal intergeer因此即便輸入010會被認爲是整形10,而%i則會將前面的0或者0x認爲此輸入是八進制或十六進制整數);
2.%p本質就是輸出指針地址,在32位編譯器下對於一個指針類型使用%x輸出和%p輸出實際上是同樣的,只是後者會在前面加上「ox」(注意在64位編譯器下因爲指針長度8byte,而整形只有4byte因此%x輸出的內容只是%p的低位數據);