从未想过编译时会在此文件中出现错误,但在 Debug模式下运行我的应用程序后,应用程序停止并突出显示该行
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
在我的 main.m 文件中作为断点。当我在正常模式下运行时,该应用程序仅显示黑屏。这是什么意思?
(更新)
好吧,到目前为止还没有任何效果。这是失败的代码:
#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;
}
堆栈说
Pending breakpoint 1 - ""main.m":31" resolved
奇怪的是,我删除了出现此问题之前的上述 View Controller ,仍然没有警告或错误,并且应用程序仍然在 Debug模式下停止或返回黑屏并在正常运行模式下卡住。
这是一个包含我在 IB 中的两个 NIB 中的 View 和窗口排列的两张屏幕截图的拖放。如果您愿意,您还可以下载我的完整项目来浏览代码。该项目名为“iHouse.zip”
否则,如果有人想查看任何其他特定代码,我很乐意根据要求将其粘贴到此处。不然我就难住了。
谢谢。
最佳答案
解决了......有点。堆栈中的“31”奇怪地指的是 main.m 开头注释掉的苹果免责声明中的随机行。我删除了这个,那个问题就消失了。仍然不知道为什么它突然成为一个问题。
我将代码与另一个应用程序并排比较,发现我已经按照 @IWasRobbed 的建议注释掉了 AppDelegate 中 applicationDidFinishLoading 的关键部分。
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
[window addSubview:splitViewController.view];
[window makeKeyAndVisible];
}
else
{
[window addSubview:tabBarController.view];
[window makeKeyAndVisible];
}
因为我还没有准备好让这个应用程序通用,所以我注释掉了这一部分。在这样做的过程中,我拿出了关键的部分来告诉应用程序首先要加载什么
[window addSubview:tabBarController.view];
[window makeKeyAndVisible];
感谢大家的帮助。我花了一整天的时间才发现一个愚蠢的错误,但我猜你会生活并学习。
关于iphone - iPhone 构建中的 main.m 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3283163/