这是情况。我在 xcode 4.2 中创建了一个项目,部署目标设置为 5.0。但我想向后兼容我的代码直到 4.0。现在我在 xcode 4.2 中没有 4.2 或 4.0 的模拟器,所以我在 xcode 4.0 中运行我的代码。这里我有两个错误:
1. unknown "strong". I removed it by adding retain instead.
2. unknown "@" in project, so I added below code in main.h
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
这是我们在ARC或iOS5之前的main.h中一般写的
现在我遇到的另一个问题是 main.h 被调用但 AppDelegate 没有被调用,即 aplicationDidFinishLaunching 从未被调用。然后我把上面的代码修改成这样
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass(AppDelegate.class));
[pool release];
return retVal;
现在,我没有遇到任何问题,构建成功,并且在两个版本的 xcode 中都被编译。我只是想知道为什么会发生这种情况,我可以继续我的项目在 xcode 4.2 中使用上述主要定义,因为这对我来说似乎并不好。