C语言,不用过多赘诉,基本上是入门必修。1972年创建至今已经发展了四十余年之久,深刻影响了后来的很多编程语言,包括Objective-C。
而对Objective-C的描述也是“C的超集”,因此在mac上的Xcode也可以编译C的程序。
以经典语句“Hello,world!”为例。
C语言的写法是:
# include <stdio.h>
int main(void)
{
printf("hello, world!\n");
return 0;
}
Objective-C的写法是:
#import <Foundation/Foundation.h>
int main(int argc, char *argv[])
{
@autoreleasepool
{
NSLog(@"Hello World!");
}
return 0;
}
从以上两例中不难看出两种编程语言其中差别。
C语言声明调用的是标准输入输出库。
Objective-C是调用的框架。这里的框架是指由许多类、方法、函数、文档按一定逻辑组合起来的集合,以便于开发。
main函数中“int argc, char* argv[]”,用法和C语言同样,从这里可以看出为什么说Objective-C是C的严格母集合,C语言的编译在Objective-C上是合法的。
和C略为不同的是
@autoreleasepool
这行代码,字面意思上是自动释放池,也引入了Objective-C的一个重要概念,内存的调用和管理。
接下来
NSLog相当于C语言中的printf,@编译器,告诉他,将字符串当做NSString类型处理。NSString是Objective-c的一个对象。@+ " 字符串 " 是Objective-C字符串常量的标准写法。
Objective-C原意即是C的语言主体上加入面向对象的特征。