线程 1 信号 SIGABRT 以 NSException 类型的未捕获异常终止
Posted
技术标签:
【中文标题】线程 1 信号 SIGABRT 以 NSException 类型的未捕获异常终止【英文标题】:Thread 1 Signal SIGABRT terminating with uncaught exception of type NSException 【发布时间】:2015-11-10 11:56:51 【问题描述】:每次运行我的应用程序时,我都会收到以下错误。它进入我的 main.m 文件并以 RED 突出显示:
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
它还说 Thread 1: signal SIGABRT 并在输出中说: * -[UIApplication _runWithMainScene:transitionContext:completion:] 中的断言失败,/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3512.29.5/UIApplication.m:3299 2015-11-10 22:54:13.484 TaskR Pro[7964:2256505] * 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“应用程序窗口应在应用程序结束时具有根视图控制器发射' *** 首先抛出调用堆栈: (0x1835E4F80 0x183520414 0x188020414 0x188237c4 0x18d4030414 0x18d4037c4 0x18d4037c4 0x18d403b44 0x18359c544 0x18359bfd8 0x18359bfd8 0x18359bfd8 0x18359bfd8 0x1834c8ca0 0x188be61c8 0x188be61c8 0x188be0ffc 0x1000d6ca0 0x1889e68b8) libc++abi.dylib:以 NSException 类型的未捕获异常终止 (lldb)
我该如何解决这个问题?
【问题讨论】:
【参考方案1】:它准确地告诉你问题出在哪里:
Application windows are expected to have a root view controller at the end of application launch
如果您使用基于标准故事板的模板,一切都已经为您设置好了,您可以直接进入 Main.storyboard。但是,如果你替换了那个,你应该确保它被标记为第一个故事板,并且还标记了一个初始视图控制器(我会为你制作一些截图让你更清楚)。
首先像这样设置目标的主界面:
然后将您的故事板(在本例中为 Main)设置为初始视图控制器:
如果您不使用故事板,或者您想选择在启动时使用哪一个(也许您想在没有会话时做一些不同的事情),您应该在 AppDelegate 中设置代码来执行此操作,例如回复here。
【讨论】:
以上是关于线程 1 信号 SIGABRT 以 NSException 类型的未捕获异常终止的主要内容,如果未能解决你的问题,请参考以下文章