我该如何解决这个SIGABRT错误与我的应用程序?

我目前正在为Xhone开发一个Xcode 4的应用程序,而且我在这个错误“线程1:程序接收到的信号:SIGABRT”中有com,这个错误在我的main.m代码中。

// // main.m // MyCard // // Created by Nazar Gren on 2/2/12. // Copyright (c) 2012 Nazar Gren. All rights reserved. // #import <UIKit/UIKit.h> #import "mycardAppDelegate.h" int main(int argc, char *argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([mycardAppDelegate class])); } } 

我的错误出现在@autorelease池行下。 在debugging器中,我得到这个消息,“这通常意味着这个过程的另一个实例已经运行或挂在debugging器中。” 而这个错误只发生在我试图debugging我的应用程序。 我的应用程序甚至不运行。 谁能帮忙? 这将不胜感激。

如果在模拟器上发生这种情况,请重新启动计算机。 如果在真实设备上发生这种情况,请重新启动设备,如果问题仍然存在,请重新启动计算机。 这个问题多次发生,因为在testing意外中止时,设备/模拟器上留下僵化的进程。 一个简单的重新启动将解决它。

你所有的代码都通过main.m运行。 所以你真正想看到的是一个堆栈跟踪 ,这里有个很好的例子,但是我看到你正在使用autoreleasepool,所以你需要类似

 // // main.m // MyCard // // Created by Nazar Gren on 2/2/12. // Copyright (c) 2012 Nazar Gren. All rights reserved. // #import <UIKit/UIKit.h> #import "mycardAppDelegate.h" int main(int argc, char *argv[]) { @autoreleasepool { @try { return UIApplicationMain(argc, argv, nil, NSStringFromClass([mycardAppDelegate class])); } @catch (NSException *e) { NSLog(@"CRASH: %@", e); NSLog(@"Stack Trace: %@", [e callStackSymbols]); } } } 

这不是主代码。 可以在任何地方。 请在乐器中尝试僵尸工具。 您可能试图访问已经释放的对象。 NSZombie会告诉你哪个是对象,你可以从那里调查。

您是否删除了对主要故事板中附件的引用?

如果是这样,请检查该对象的引用出口,看它是否仍然指向某个东西,尝试删除该引用并再次运行您的模拟器…