当我使用 XCode 4.2(例如单 View iOS 应用程序)创建新项目时,“支持文件”文件夹中的 main.m 文件如下所示:
#import <UIKit/UIKit.h>
#import "iiiAppDelegate.h"
int main(int argc, char *argv[])
{
int retVal = 0;
@autoreleasepool {
retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([iiiAppDelegate class]));
}
return retVal;
}
编译器设置(在build设置中)是 Apple 3.0 LLVM。当我将其更改为 GCC 4.2 或 GCC4.2 LLVM 时,它显示 main.m 错误。
没有@autoreleasepool
...
我的 Xcode 中的哪个设置会导致此类问题?为什么新项目的标准编译器是Apple 3.0LLVM而不是系统默认的编译器(GCC4.2)??
最佳答案
回答你的第一个问题:
Which Setting in my Xcode can cause such troubles?
编译器本身就是设置。改成 LLVM 3.0 就没问题了
回答你的第二个问题:
Why is the standard compiler for new projects the Apple 3.0LLVM instead of the system default compiler (GCC4.2)??
LLVM 3.0 是 Xcode 4.2 的系统默认编译器。
我认为您实际上问的是在不使用 LLVM 3.0 时如何修复错误。为此,您需要将 @autoreleasepool
替换为 NSAutoreleasePool
,如下所示:
int main(int argc, char *argv[]) {
int retVal = 0;
// @autoreleasepool {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([iiiAppDelegate class]));
[pool drain];
// }
return retVal;
}
关于objective-c - XCode 4.2 编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6381764/