Objective-C编程语言是一种面向对象的高级编程语言,可以用它编写基于Mac或者iOS系统的应用程序。
闲言少叙,下面我们创建一个Hello World程序,了解一下最基本的Objective-C程序的写法。打开任何文本编辑工具,例如系统的“文本编辑”工具(应用程序 -> 文本编辑),或者在终端中使用vi命令都可以。这里以文本编辑工具为例,在其编辑区中输入下面的代码:
- #import <Foundation/Foundation.h>
- int main (int argc, const char * argv[])
- {
- @autoreleasepool
- {
- printf("Hello, World!\n");
- NSLog(@"Hello, Objective-C!");
- }
- return 0;
- }
然后按下⌘S保存,注意需要将其保存为纯文本格式,文件名及其存放路径可以随意,例如test.m。Objective-C程序的源代码文件后缀为.m,头文件后缀是.h。接下来我们可以在Xcode中或者系统终端中对程序进行编译链接,生成可执行文件。这里以命令行方式为例,打开终端(应用程序 -> 实用工具 -> 终端),并通过cd命令进入到test.m文件所在的目录,然后需要使用clang工具对上述程序进行编译链接。在iOS 5之前,我们可以通过gcc工具对源代码进行编译链接,但是由于iOS 5中添加了新的特性,例如ARC以及新的指令,所以需要使用LLVM clang编译器。如果你还使用老的gcc,是无法通过编译的,因为它并不认识源代码中新的指令。
在终端中输入如下命令:
- $ clang -fobjc-arc -framework Foundation test.m -o test
编译链接之后会在当前目录生成test,我们接下来就可以在终端中执行该文件,输入如下命令:
- $ ./test
- Hello, World!
- 2012-02-24 16:46:37.532 test[75632:707] Hello, Objective-C!
之后定义了一个C函数main,它作为程序的入口点。其函数声明与C语言中的main函数完全一样,argc参数保存了命令行的参数个数(包括命令本身),argv是一个C字符串数组,保存了每个输入的参数的字符串。
接着,在main函数体中,首先使用@autoreleasepool指令定义了一个自动释放域,它用于释放之前申请的内存空间,现在我们可以先不关注它。
然后main函数使用C语言中的printf函数输出了一个C字符串"Hello, World!\n",然后又调用了NSLog函数输出了一个Cocoa字符串@"Hello, Objective-C!"。看上去这两个字符串很类似,但是实际上他们的差别非常大。前者是一个C字符串char*,一个以0结尾的字符数组。后者以@字符开头,它是Cocoa字符串对象,一个NSString类型的对象。C字符串基本上没有提供任何功能,而NSString是Foundation框架中定义的字符串类,它提供了非常多的字符串操作功能,例如获得字符串的长度,查找某个子字符串的位置,判断两个字符串的内容是否相同,获取某个位置的字符等等。所以在使用字符串时我们绝大多数都会使用NSString对象。
最后程序使用return语句返回。
文章出处:http://blog.csdn.net/pucker/article/details/7291240
最后贴上一些常见问题