【问题标题】:Objective C Hello World errorObjective C Hello World 错误
【发布时间】:2012-05-07 18:50:51
【问题描述】:

很多Objective-C教程似乎都使用如下程序:

#import "Foundation/Foundation.h"

int main ()
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    NSLog(@"Hello world!");
    [pool drain];
    return 0;
}

我确实取出了所有关于游泳池的东西,而且效果很好。但这给了我一条错误消息。 'NSAutoreleasePool' 不可用:在自动引用计数模式下不可用。也许我做错了什么?

我使用的是 Xcode 4.3.2。我选择了新项目 -> 命令行工具 -> 基础。这是我使用的源代码。

【问题讨论】:

  • 如果您使用 ARC,请忽略此代码 ;)
  • 项目的 main.m 模板应该已经有这个代码的正确版本。你改了吗?

标签: objective-c


【解决方案1】:

这是因为您使用 ARC 进行编译,并且此源是 ARC 之前的。如果您更改编译器模式以禁用 ARC,它将正常编译。您还可以使用新型自动释放池(也可以在没有 ARC 的情况下使用):

#import "Foundation/Foundation.h"

int main ()
{
    @autoreleasepool {
        NSLog(@"Hello world!");
    }
    return 0;
}

【讨论】:

    【解决方案2】:
    #import <Foundation/NSAutoreleasePool.h>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-25
      • 1970-01-01
      • 1970-01-01
      • 2010-10-20
      • 1970-01-01
      • 1970-01-01
      • 2018-05-10
      • 2011-08-26
      相关资源
      最近更新 更多