// First program example
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool =
[[NSAutoreleasePool alloc] init];
// insert code here...
NSLog(@"Hello World!");
[pool drain];
return 0;
}
解释:
• #import <Foundation/Foundation.h>, 告诉编译器找到并处理名为Foundation.h文件,这是一个系统文件,#import表示将该文件的信息导入到程序中。
• 在C和C++中采用#include指令,在本例中也可以采用#include,而#import是#include改进指令,它可以防止头文件重复包含问题。
• int main(int argc, const char * argv[]),这个方法是程序的入口。参数argc-参数数目,argv-参数值。
• NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]语句是创建一个自动释放内存池对象,使用它来维护内存释放和回收,其中alloc方法是分配内存,init方法是初始化类,相当于C++或Java的构造方法作用。
• NSLog是Foundation框架提供的Objective-C日志输出函数,与标准C中的printf函数类似,并可以格式化输出。
@“Hello, World!”,是代表NSString字符串对象,它是Objective-C常用的字符串类。
• [pool drain]语句是用来释放内存池,它将纳入到这个内存池中管理的对象内存全部释放掉,关于NSAutoreleasePool问题我们将在内存管理部分详细讨论。
• 最后是return 0语句,它表示要终止main的执行,一般情况下0代表正常结束,非0代表异常情况,这是沿用了C语言的习惯。