Iphone 在ipod touch上运行时,不要使用模拟器';程序接收信号SIGABRT';

Iphone 在ipod touch上运行时,不要使用模拟器';程序接收信号SIGABRT';,iphone,objective-c,cocoa-touch,signals,sigabrt,Iphone,Objective C,Cocoa Touch,Signals,Sigabrt,我的应用程序在模拟器中运行得很好,但现在我有了开发者许可证,当我尝试在我的iPodtouch上运行它时,xcode说GBD:程序收到信号:“SIGABRT”。 我能做些什么来找出问题所在?它在构建时不会发出警告 编辑:对不起,这是我第一次在设备上运行应用程序,请耐心等待。我刚刚注意到Organizer窗口和debugger正在向我提供设备上发生的事情的日志。这就是问题所在: [UIApplication setStatusBarHidden:withAnimation:]:发送到实例0x1160

我的应用程序在模拟器中运行得很好,但现在我有了开发者许可证,当我尝试在我的iPodtouch上运行它时,xcode说
GBD:程序收到信号:“SIGABRT”。

我能做些什么来找出问题所在?它在构建时不会发出警告

编辑:对不起,这是我第一次在设备上运行应用程序,请耐心等待。我刚刚注意到Organizer窗口和debugger正在向我提供设备上发生的事情的日志。这就是问题所在:

[UIApplication setStatusBarHidden:withAnimation:]:发送到实例0x1160e0的无法识别的选择器

它所指的代码在
(BOOL)中应该是AutoRotateTointerFaceOrientation:(UIInterfaceOrientation)interfaceOrientation{

这是它遇到问题的代码:

`if(interfaceOrientation==UIInterfaceOrientationAndscapeLeft|| interfaceOrientation==UIInterfaceOrientationAndscapeRight){

self.view=homeView; [[UIApplication sharedApplication]设置StatusBarHidden:NO with animation:NO]

    return YES;
}
else {
    return YES;
}

`

在调试模式下运行应用程序时,您可以监视控制台(运行->控制台)。对于大多数崩溃,您将收到某种错误消息,这些消息将为您指明正确的方向。此外,在调试视图中,您将能够在应用程序崩溃时看到堆栈(Xcode默认布局中调试视图的左上角).Xcode将以暗文本突出显示堆栈中属于您的代码的方法。这些是第一个可疑的方法。

当您在调试模式下运行应用程序时,您可以监视控制台(运行->控制台)。对于大多数崩溃,您将收到某种错误消息,指出正确的方向。此外,在调试视图中,您将能够在应用程序崩溃时看到堆栈(Xcode默认布局中调试视图的左上角).Xcode将以暗文本突出显示堆栈中属于代码的方法。这些是第一个可疑的方法。

在代码的最开始处插入断点,并在调试模式下运行。使用调试器逐行检查代码,并查看代码在SIGABRT发生之前的距离

但是您是否已将iPod touch设置为资源调配设备

哦,刚刚发现了其他问题。我不确定您是否向withAnimation参数发送了正确的数据。请查看文档:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:NO]; 
应该是这样的:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide]; 

在代码的最开始处插入一个断点,并在调试模式下运行。使用调试器逐行检查代码,并查看代码在SIGABRT出现之前的运行距离

但是您是否已将iPod touch设置为资源调配设备

哦,刚刚发现了其他问题。我不确定您是否向withAnimation参数发送了正确的数据。请查看文档:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:NO]; 
应该是这样的:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide]; 

[UIApplication setStatusBarHidden:withAnimation:]:发送到实例0x1160e0的无法识别的选择器

您的设备上似乎不存在此方法。它是在3.2中添加的。您的iPod运行的是哪个iOS版本?此外,第二个参数类型错误

如果它较低,并且你想支持它,你应该考虑

    if ([[UIApplication sharedApplication] respondsToSelector:@selector(setStatusBarHidden:withAnimation:)]) {
        [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
    } else {
        [[UIApplication sharedApplication] setStatusBarHidden:NO animated:NO];
    }

[UIApplication setStatusBarHidden:withAnimation:]:发送到实例0x1160e0的无法识别的选择器

您的设备上似乎不存在此方法。它是在3.2中添加的。您的iPod运行的是哪个iOS版本?此外,第二个参数类型错误

如果它较低,并且你想支持它,你应该考虑

    if ([[UIApplication sharedApplication] respondsToSelector:@selector(setStatusBarHidden:withAnimation:)]) {
        [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
    } else {
        [[UIApplication sharedApplication] setStatusBarHidden:NO animated:NO];
    }

在调试模式下运行时,它至少应该告诉您哪一行导致SIGABRT。在调试模式下运行时,它至少应该告诉您哪一行导致SIGABRT。