先看一段简单的代码:Hello Objective-C.m
#import <Foundation/Foundation.h>
int main(int argc,const char *argv[])
{
NSLog(@"Hello, Objective-C!");//输出“Hello, Objective-C!”
return (0);
}//main
1. .m扩展名表示文件还有Objective-C代码,应该由Objective-C编译器处理。
2. .c结尾的文件由C编译器处理
3. .cpp文件由C++编译器处理
4. 在XCode中,所有编译工作全由GCC(GNUCompiler Collection, GNU编译器集合)处理,这个编译器能理解C语言的全部三个变体。
#import
C语言使用#include语句通知编译器应在头文件中查询定义,在Objective-C中使用#import来通知
头文件包含元素声明,这些元素包含结构体、符号常量、函数原型等
#import可以保证头文件只被包含一次,而不论此命令实际在那个文件中出现了多少次(在C语言中,程序员通常使用基于#iddef命令的方案来避免一个文件包含另一个文件,而后者又包含第一个文件的情况)
#import <Foundation/Foundation.h>语句告诉编译器查看Foundation框架中的Foundation.h头文件
框架
框架是一种狙击在一个单元的部件几核,包含头文件、库、图像、声音文件等。苹果公司将Cocoa/Carboa/QuickTime和OpenGL等技术作为框架集提供。Cocoa的组成部分有Foundation和Application Hit(AppKit)框架.还有一个支持框架的套件,包含Core Animation 和Core image
Foundation框架处理的事用户界面之下的层中的特性,例如数据结构和通信机制
每个框架够是一个重要的技术集合,通常包含数十个甚至上百个头文件。每个框架都有一个主头文件,它包含了所有框架的各个头文件,通过使用#import导入主头文件,可以使用所有框架的特性。
NSLog()和@“字符串”
和C语言的prinf()相似
NSLog接收一个字符串作为其第一个参数,该字符串可包含格式说明符(如%d),此函数还可以接收匹配格式说明符的其他参数,printf()可在打印之前将这些参数插入到作为第一个参数的字符串中。
Objective-C只是增加了一点特殊调料的C语言,所以可以用printf()代替NSLog(),但是建议使用NSLog(),因为它添加了特性,例如时间戳。日期戳和自动附加换行符(` `)等
@符号是Objective-C再标准C语言基础上添加的特性之一,双引号中的字符串钱有一个@ 符号,这表示引用的字符串应该作为Cocoa的NSString元素来处理
return (0)
这一句是返回语句,可种植执行main()并结束程序
返回的0值说明我们的程序成功完成了,C语言里返回语句的工作方式也是这样