我目前正在Xcode 4中为iPhone开发一个应用程序,我遇到了这个错误,“线程1:程序接收信号:SIGABRT”,这个错误出现在我的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池行下面的行上。在调试器中,我收到此消息,“这通常意味着此进程的另一个实例已在运行或挂在调试器中。”只有当我尝试调试我的应用程序时才会出现此错误。我的应用程序甚至没有运行。有人可以帮忙吗?这将不胜感激。
答案 0 :(得分:8)
如果在模拟器上发生这种情况,请重新启动计算机。如果在真实设备上发生这种情况,请重新启动设备,如果问题仍然存在,请重新启动计算机。多次出现此问题,因为当测试意外中止时,设备/模拟器上会留下僵尸化进程。简单的重启就可以解决它。
答案 1 :(得分:2)
所有代码都通过main.m
运行。所以你真正希望看到的是一个堆栈跟踪,这是一个很好的例子here,但我看到你正在使用自动释放池,所以你需要像
//
// 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]);
}
}
}
答案 2 :(得分:1)
这不在主代码中。可以在任何地方。请在乐器中尝试僵尸工具。您可能正在尝试访问已释放的对象。 NSZombie会告诉你哪个是对象,你可以从那里进行调查。
答案 3 :(得分:1)
您是否删除了对主故事板中附加内容的引用?
如果是这样,请检查该对象的引用插座,看它是否仍在尝试指向某个内容,尝试删除该引用并再次运行模拟器...