我有一个使用ARC的iOS项目,我收到的错误与我创建应用程序@autoreleasepool的方式有关。
在main.m中,我有一小段代码,以便:
#import <UIKit/UIKit.h>
int main(int argc, char *argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, @"MyAppDelegate");
}
}
我收到错误消息:
错误:“@”标记之前的预期表达式
但是,如果我恢复到创建自动释放池的旧方式:
#import <UIKit/UIKit.h>
int main(int argc, char *argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}
我特别在IDE中收到与ARC相关的各种错误:
但是当我尝试构建时,它会成功构建。
冲突在哪里?
如何让它使用创建自动发布池的新方式?
答案 0 :(得分:2)
确保您已准备好使用Clang编译器(Apple LLVM)而不是GCC:
然后给你写main.m,类似于:
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}