Objective-C
一、蘋果公司的發展史
1976年蘋果公司由喬布斯,沃茲尼雅克和韋恩三人聯合創立;在當年釋出了apple 1,也就是一塊可擴充的電路闆;1977年釋出了apple II,他配置了機箱,鍵盤,電源以及彩色圖像處理能力; 1979年開始研發apple III(1980)。liSA(1983)以及 macintosh(1984)是桌面系統的鼻祖。
二、Objective-C與C的淵源
Objective-C誕生于 20 世紀 80 年代,由Brad Cox 發明,意在将流行的、可移植的 C 語言與優雅的 Smalltalk 語言結合在一起。Objective-C 是 C 語言的一個擴充集,它以 C 語言為基礎,在語言中添加了一些微妙但意義重大的特性。
蘋果公司的iphone平台采用Objective-C做為native language的開發,Objective-C的核心是C語言的,并基于C語言實作OOP的一些特性。Objective-C是對C語言的擴充,這和C++的前身Better-c有很大的相似之處,Objective-C的新版本裡實作了和Java類似的垃圾回收機制,但基于iphone平台的資源限制,iphone平台并不支援垃圾回收機制。
oc的頭檔案格式為“.h”,實作檔案格式為“.m”,如果需要使用C++的文法和内容,那麼實作檔案格式為“.mm”。
三、初識Objective-C
1、Cocoa的組成
蘋果公司将Cocoa、Carbon、QuickTime和OpenGL等技術作為架構集提供Cocoa組成部分有:(1)Foundation架構(有很多有用的,面向資料的低級類和資料結 構);(2)Application Kit(也稱AppKit)架構(包含了所有的使用者接口對象和進階類,例如NS……),還有一個支援架構的套件,包括Core Animation和Core Image。
2、NSLog相當于printf()
比如:NSLog(@"hello Objective-C");
注:@是Objective-C在标準C語言基礎上添加的特征之一,雙引号的字元串前面有一個@,這表示引用的字元串應該作為Cocoa的NSString元素處理
NSLog(@"are %d and %d different? %@",5,5,boolString(areTheyDifferent));
注意%@:使用NSLog輸出任何對象值時,都會使用這個格式說明
3、BOOL使用8位存儲,YES定義為1,NO定義為0,大于1不為YES,跟标準C不同。
若不小心将一個長于1位元組的整型值賦給BOOL,則隻截取低八位 ;
Obejective-C中1不等于1,絕對不要将BOOL值和YES比較 。