一、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 平台并不支持垃圾回收机制。
二、初识 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 比较
三、怪异的 Objective-C 语法结构
我这里之所以说它的怪异,是相对于习惯其它编程语言(JAVA,C++等语
言),下面把它最常见的特色简单说明: