2009-09-26 51 views
3

我刚刚完成了iPhone的应用程序,直到今天,它在iPhone模拟器和实际设备上运行良好。更改xib时iPhone上的SIGABRT

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

当我在模拟器上启动应用程序时,将显示Default.png图像,然后该应用程序会崩溃并带有未捕获的异常。在设备上运行时,Default.png图像显示约10秒,UI从未加载,我得到'GDB:程序接收信号:“SIGABRT”。'在Xcode状态栏上。调试显示applicationDidFinishLaunching在应用程序崩溃之前从未真正实现过。

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

这是一个记忆问题,还是一个常见错误的已知问题?

注意:我没有做任何代码更改,而且我对xib所做的唯一更改是化妆品,IBOutlets都完好无损。

回答

1

对不起,家伙,我的错 - 看来我删除了MainWindow.xib文件,所以委托没有在启动后调用,我做了更改。我重新创建了它并将其链接到应用程序委托和UIA应用程序,现在一切正常。

2

您可能在代码中更改了IBOutlet的名称,而无需在xib中对其进行更改。

+0

我检查了两个IBOutlets主XIB和连接似乎很好,因为他们之前 - 请注意,我从来没有在飞机坠毁前达到的applicationDidFinishLaunching,所以厦门国际银行是不实际加载, 对? – Boz 2009-09-26 10:30:27

+0

目前还不清楚您是在讨论从'UIApplicationMain'加载的主要笔尖还是从代码加载的另一个笔尖。 – 2009-09-26 10:46:31

+0

我正在讨论从应用程序委托中的applicationDidFinishLaunching方法加载的nib。但是,在应用程序崩溃之前,调试器中永远无法访问该方法。 – Boz 2009-09-26 10:53:00

0

您可能已将IBOutlet从xib连接回您的代码,并且这些连接已断开。

你将不得不给我们更多关于如何更改nibname字符串的细节。你有没有重新命名你的xib文件?

+0

我所做的改变是纯粹的化妆品,主要是看我是否能重现该问题在不改变任何代码 - 我觉得这个问题是不是在代码中,因为应用昨晚细跑了相同的代码。我所做的一切都是改变标签的颜色,并以相同的名字保存xib。 – Boz 2009-09-26 10:23:15

0

我改名一些类和Xibs并得到了SIGABRT到的main.m

在身份检查类名可能会指向不存在的类名

0

其因为在initWithNibName你不能做出正确的厦门国际银行的名称,以便它会崩溃