Objective-C 不打印(NSLog 和 PrintF 不工作!)

Objective-C Does not Print (NSLog and PrintF Not WORKING!)

我已经搜索了几个小时,尝试了 20 多个文件,并且每次都在 Xcode 中或通过终端 运行ning。 None 将呈现任何输出。我重新启动终端并重新启动计算机。仍然没有运气。在这一点上,我完全不知道发生了什么。

#import <Foundation/Foundation.h>

int main(int argc, char** argv)
{
  NSLog(@"Testing\n");
  printf("Hello\n");
}

在终端

gcc -framework Foundation hello.m -o

clang -framework Foundation hello.m -o

都行不通!

我可以输入我试过的其他 50 个,但让我们从非常非常简单的开始。在 运行ning 之后,没有输出到控制台。糊涂得要命。到处都显示输出,我尝试切换计算机并 运行 它,同样的事情。你设置或做什么来打开 Objective-C 的注销。没有教程或任何地方涵盖这一点。

Nada 印刷。

您只编译文件,不保存结果。 -o 选项用于写入输出,因为您没有提供文件名,所以编译器只会忽略结果而不保存它。 要 运行 它使用以下命令:

clang -framework Foundation hello.m -o test
./test

或者,作为快捷方式,

clang -framework Foundation hello.m -o test && ./test

如您所见,现在我们将输出文件的名称指定为test,然后执行它。现在您将能够看到输出。

另外,请注意 NSLog 不再打印到 stdout 并将所有消息重定向到 OSLog 子系统。您可以在 Console.app 中查看此类日志。如果您想了解更多信息,请查看 Unified Logging and Activity Tracing WWDC session。