我在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我想,现在它可以工作了。
答案 0 :(得分:4)
正如@ahruss所提到的,有一个编译器错误(你应该打开一个雷达,因为编译器不应该崩溃),但它可能来自你代码中的错误:
NSAutoreleasePool *pool = [[pool alloc] init];
你的意思是:
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];