2015-06-13 69 views
1

在我的iOS应用程序中,整个用户界面以编程方式编码,即没有xib或故事板。一切正常,直到我通过UINavigationController添加另一个视图控制器。推送/弹出第二个视图控制器后,iOS UI会导致崩溃

第一个视图控制器运行良好,当第二个视图控制器被按下时,它也可以工作。但是在第二个视图控制器弹出自身并且第一个视图控制器重新出现之后,与用户界面的任何元素的任何交互都会使应用程序崩溃。

任何想法可能会导致此?

UPDATE:截图例外exception

+0

您的视图控制器很可能引用了一些已被释放的东西。您应该能够在调试器中运行应用程序,查看堆栈跟踪并确定问题。你问如何跟踪这个? –

+0

@PetahChristian:是的;没有具体的错误信息,我不知道如何按照您的建议跟踪它。 – iSofia

回答

1

有系统产生的应用程序崩溃时崩溃日志。所有的消息,以及栈回溯都在那里。

通过将设备连接到Mac,然后打开设备窗口和查看设备日志,您可以看到设备的崩溃日志。

但是,通过在设备上连接设备,然后在Xcode中构建和运行它,在Xcode中进行调试将变得更加容易。

当应用程序崩溃时(由于某种异常),Xcode可以捕捉到这一点,控制权将转移到调试器。

您可以在Xcode中添加一个异常断点以在发生异常时立即停止您的应用程序。

要添加异常断点,请切换到断点导航器。单击窗格底部的小按钮+,然后选择添加异常断点

应用程序崩溃后,您可以查看堆栈回溯。调用堆栈中的前几个项目可能会在Apple的代码中,但是稍微远一些的将会是来自视图控制器的调用,显示发现问题的线。

至于什么是特别错误,它可能是任何数量的东西。除非您共享显示这些对象的属性以及它们在哪里(分配)的代码,否则我们无法专门提供帮助。

+0

感谢您的回答。我添加了异常断点,但似乎无法找到堆栈回溯。它是不同线程的汇编列表吗? – iSofia

+0

是的。汇编代码是Apple的SDK。如果您查看崩溃线程的调用列表,您会看到数字,从0开始。在列表中查看,直到找到您自己的代码。 –

+0

谢谢。我认为我发现了它,尽管没有太多关于_(截图添加到问题)_。没有办法知道是什么造成的? – iSofia

相关问题