更改xib时iPhone上的SIGABRT

更改xib时iPhone上的SIGABRT,iphone,objective-c,xcode,crash,xib,Iphone,Objective C,Xcode,Crash,Xib,我刚刚完成了一个iPhone应用程序,到今天为止,它在iPhone模拟器和实际设备上运行良好 我尝试在我的应用程序委托类中更改ApplicationIDFinishLaunching方法中加载的xib-我所做的只是更改initWithNibName中的字符串 当我在模拟器上启动应用程序时,会显示Default.png图像,然后应用程序崩溃,出现未捕获的异常。在设备上运行时,Default.png图像显示约10秒,用户界面从未加载,我在Xcode状态栏上得到“GDB:Program receive

我刚刚完成了一个iPhone应用程序,到今天为止,它在iPhone模拟器和实际设备上运行良好

我尝试在我的应用程序委托类中更改ApplicationIDFinishLaunching方法中加载的xib-我所做的只是更改initWithNibName中的字符串

当我在模拟器上启动应用程序时,会显示Default.png图像,然后应用程序崩溃,出现未捕获的异常。在设备上运行时,Default.png图像显示约10秒,用户界面从未加载,我在Xcode状态栏上得到“GDB:Program received signal:“SIGABRT.”。调试表明,在应用程序崩溃之前,从未实际到达ApplicationIDFinishLaunching

将起始xib设置回原始解决了这个问题,但现在我做了一个更改并将其保存在Interface Builder中,应用程序显示了与上面相同的问题-我根本没有做任何代码更改

这是内存问题还是常见错误的已知问题


注意:我没有做任何代码更改,我对xib所做的唯一更改是修饰性的,IBOutlet都完好无损。

您可能在代码中更改了IBOutlet的名称,但没有在xib中更改它。

您可能将IBOutlet从xib连接回了代码,这些连接已断开


您必须向我们提供更多关于nibname字符串是如何更改的详细信息。你重命名了你的xib文件了吗?

对不起,伙计们,是我的错-看来我删除了MainWindow.xib文件,所以在我做了更改后启动时没有调用代理。我重新创建了它,并将它链接到app delegate和UIApplication,所以现在一切都正常了。

我重命名了一些类和xib,并将SIGABRT添加到main.m中


Identity Inspector中的类名可能指向不存在的类名

因为在initWithNibName中,您没有给出正确的xib名称,因此它将崩溃

我所做的更改纯粹是表面性的,主要是为了看我是否可以在不更改任何代码的情况下重新创建问题-我认为问题不在代码中,因为昨晚应用程序运行良好,代码相同。我所做的只是更改了标签的颜色并以相同的名称保存了xib。我检查了主xib中的两个IBOutlet,连接似乎很好,就像以前一样-请注意,我在崩溃之前从未到达ApplicationIDFinishLaunching,因此xib没有实际加载,对吗?不清楚您是指从
UIApplicationMain
加载的主nib还是从code加载的另一个nib。我指的是从应用程序委托中的ApplicationIDFinishLaunching方法加载的nib。但是,在应用程序崩溃之前,调试器永远不会到达该方法。当然,未执行的代码不会崩溃。再次检查从
UIApplicationMain
自动加载的nib。