Ben*_*nny 2 xcode objective-c llvm
当我使用XCode 4.2(例如,单视图iOS应用程序)创建一个新项目时,"支持文件"-Folder中的main.m-File看起来像:
#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;
}
Run Code Online (Sandbox Code Playgroud)
编译器设置(在构建设置中)是Apple 3.0 LLVM.当我将其更改为GCC 4.2或GCC4.2 LLVM时,它显示与main.m的错误.
没有@autoreleasepool......
我的Xcode中的哪个设置会导致这样的麻烦?为什么新项目的标准编译器是Apple 3.0LLVM而不是系统默认编译器(GCC4.2)?
回答你的第一个问题:
我的Xcode中的哪个设置会导致这样的麻烦?
编译器本身就是设置.将其更改为LLVM 3.0,不再有麻烦
回答你的第二个问题:
为什么新项目的标准编译器是Apple 3.0LLVM而不是系统默认编译器(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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4344 次 |
| 最近记录: |