1

我想从《Objective-C 编程(第 4 版)》这本书开始学习 Objective-C。我在 Windows xp 上工作。为了编译objective-c程序,我安装了GNUstep,当我输入这个例子时,我在一些教程中找到了:

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    NSLog (@"hello world");
    [pool drain];
    return 0;
}

它一切正常。但是当我尝试输入本书中的第一个示例时:

#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
{
@autoreleasepool {
    NSLog (@"Programming is fun!");
}
return 0;
}

我收到很多错误:

我得到什么 ib 控制台

有谁知道我做错了什么?谢谢你的帮助。

4

1 回答 1

3

这是因为@autoreleasepool 是 LLVM 编译器引入的一个新特性,所以基本上你的编译器不会理解如何处理它。当 Apple 推出 ARC 时,这是对语言的必要更改,因此它现在是创建自动释放池的标准方式。

于 2012-02-24T11:04:25.223 回答