Hello World
该程序将输出 Hello World!
#import <Foundation/Foundation.h>
int main(int argc, char * argv[]) {
NSLog(@"Hello World!");
}
#import
是一个预处理器指令,表示我们要将该文件中的信息导入或包含在程序中。在这种情况下,编译器会将 Foundation
框架中 Foundation.h
的内容复制到文件的顶部。 #import 和#include 之间的主要区别在于#import 是智能的,足以不重新处理已经包含在其他#includes 中的文件。
在 C 语言中的文档解释了 main
功能。
NSLog()
函数将打印提供给控制台的字符串以及一些调试信息。在这种情况下,我们使用 Objective-C 字符串文字:@"Hello World!"
。在 C 中,你可以将其写为 Hello World!
,但是,Apple 的 Foundation Framework 添加了 NSString
类,它提供了许多有用的功能,并由 NSLog 使用。创建 NSString
实例的最简单方法是这样的: 。 @" string content here "
从技术上讲,
NSLog()
是 Apple 的 Foundation Framework 的一部分,实际上并不是 Objective-C 语言的一部分。但是,基础框架在 Objective-C 编程中无处不在。由于 Foundation Framework 不是开源的,不能在 Apple 开发之外使用,因此该框架的开源替代品与 OPENStep 和 GNUStep 相关联。
编译程序
假设我们要编译包含单个 hello.m
文件的 Hello World 程序,编译可执行文件的命令是:
clang -framework Foundation hello.m -o hello
然后你可以运行它:
./hello
这将输出:
Hello World!
选项是:
-
-framework
:指定用于编译程序的框架。由于该程序使用 Foundation,因此我们包含 Foundation 框架。 -
-o
:此选项指示我们要输出程序的文件。在我们的案例中hello
。如果未指定,则默认值为a.out
。