Objective-C简单的hello world不会编译

时间:2014-07-30 20:36:51

标签: objective-c macos

我在OSX上使用Xcode,以下代码无法编译:

#import <Foundation/Foundation.h>

int main(int argc, const char *argv[]) {
    @autoreleasepool {
        NSLog(@"Hello world!");
    }
    return 0;
}

但是,如果删除autoreleasepool块,则代码可以正常工作。我也可以编译和运行c和c ++代码,但是如果我关闭ARC并以旧时尚的方式编写autorelease:

#import <Foundation/Foundation.h>

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

然后代码也没有编译。

此处显示完整的错误日志: http://pastebin.com/d9XYUCiG


编辑: 我从Xcode 5.1.1降级到XCode 5我想,现在它可以工作了。

1 个答案:

答案 0 :(得分:4)

正如@ahruss所提到的,有一个编译器错误(你应该打开一个雷达,因为编译器不应该崩溃),但它可能来自你代码中的错误:

NSAutoreleasePool *pool = [[pool alloc] init];

你的意思是:

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
相关问题