C语言的HelloWorld 过渡到 OC的HelloWorld
#include<stdio.h>
int main(void)
{
printf("Helloworld!\n");
return 0;
}
#import <Foundation/NSObjCRuntime.h>
int main()
{
NSLog(@"HelloWorld!");
return 0;
}
—————————比较C与OC的HelloWorld—————————— |
1) C语言中输出或打印时需要调用函数printf,它对应在头文件stdio.h中, 而 OC 则调用NSLog函数,它在对应的头文件Foundation/NSObjCRuntime.h中可找到。
2) printf 不会自动换行,需要添加”\n”符,
而NSLog则会自动换行,不用添加什么鬼 \n 符,但在OC的所有字符串前都要加上 @ 符,所以这里出现了个@ 的奇葩符号。
2.包含头文件预编译指令#include 与 #import的比较: |
- 1)不小心写了很多个
#include<stdio.h>
,会增加预编译的次数,即老是跑到头文件stdio.h中,累不累啊! - 2)不小心写了很多
#import<Foundation/NSObjCRuntime.h>
,只会预编它一次,即只会跑进头文件Foundation/NSObjCRuntime.h 中一次。
- 1) 比如:Foundation.h主头文件包含了NSObjCRuntime.h的声明,请看下图。恩!注意到没有”
#import <Foundation/Foundation.h>
“第一个单词Foundation (它有个高大上的名为,Foundation框架)与主头文件的名字是一样的!也就是说,主头文件名是跟框架名一样的!再也不用担心调用函数或方法时要记忆起那么多头文件了!改进代码如下:
#import <Foundation/Foundation.h>//包含了NSObjCRuntime.h
int main()
{
NSLog(@"HelloWorld!");
return 0;
}