3

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

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

当我在模拟器上启动应用程序时,会显示 Default.png 图像,然后应用程序会因未捕获的异常而崩溃。在设备上运行时,Default.png 图像显示大约 10 秒,UI 从未加载,我得到“GDB:程序接收信号:“SIGABRT”。在 Xcode 状态栏上。调试表明,在应用程序崩溃之前,实际上从未达到 applicationDidFinishLaunching。

将起始 xib 设置回原始版本可以解决问题,但现在我进行了更改并将其保存在 Interface Builder 中,应用程序显示与上述相同的问题 - 我根本没有进行任何代码更改。

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

注意:我没有进行任何代码更改,我对 xib 所做的唯一更改是装饰性的,IBOutlets 都是完整的。

4

5 回答 5

2

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

于 2009-09-26T10:17:28.283 回答
1

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

于 2009-09-26T11:51:51.203 回答
0

这是因为在 initWithNibName 你没有给出正确的 xib 名称所以它会崩溃

于 2012-10-11T04:26:48.990 回答
0

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

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

于 2009-09-26T10:19:59.537 回答
0

我重命名了一些类和 Xib,并将 SIGABRT 放入 main.m

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

于 2011-11-24T09:45:29.097 回答