Swift 当崩溃线是应用程序委托时,如何使用断点进行调试?

Swift 当崩溃线是应用程序委托时,如何使用断点进行调试?,swift,xcode,debugging,Swift,Xcode,Debugging,自从升级到最新的Xcode之后,我在应用程序启动时遇到了随机/间歇性的崩溃,我只能通过多次启动应用程序并等待它返回来重现。应用程序崩溃的行位于应用程序委派的顶部: class AppDelegate: UIResponder, UIApplicationDelegate { 我不知道我是如何在这里设置断点的,我能从中得到什么。报告的崩溃原因是线程1上的NSException错误: [\u NSTaggedDate countbyEnumerating with state:objects:co

自从升级到最新的Xcode之后,我在应用程序启动时遇到了随机/间歇性的崩溃,我只能通过多次启动应用程序并等待它返回来重现。应用程序崩溃的行位于应用程序委派的顶部:

class AppDelegate: UIResponder, UIApplicationDelegate {
我不知道我是如何在这里设置断点的,我能从中得到什么。报告的崩溃原因是线程1上的NSException错误:

[\u NSTaggedDate countbyEnumerating with state:objects:count]:发送到实例0x80000000000000的无法识别的选择器

回溯:

* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
  * frame #0: 0x000000019b7c6d88 libsystem_kernel.dylib`__pthread_kill + 8
    frame #1: 0x000000019b6df1e8 libsystem_pthread.dylib`pthread_kill$VARIANT$mp + 136
    frame #2: 0x000000019b632934 libsystem_c.dylib`abort + 100
    frame #3: 0x000000019b79acc0 libc++abi.dylib`abort_message + 128
    frame #4: 0x000000019b78ce10 libc++abi.dylib`demangling_terminate_handler() + 296
    frame #5: 0x000000019b6f3e80 libobjc.A.dylib`_objc_terminate() + 124
    frame #6: 0x000000019b79a14c libc++abi.dylib`std::__terminate(void (*)()) + 16
    frame #7: 0x000000019b79a0e4 libc++abi.dylib`std::terminate() + 44
    frame #8: 0x000000019b6f3e04 libobjc.A.dylib`objc_terminate + 12
    frame #9: 0x0000000105e2b744 libdispatch.dylib`_dispatch_client_callout + 36
    frame #10: 0x0000000105e39710 libdispatch.dylib`_dispatch_main_queue_callback_4CF + 976
    frame #11: 0x000000019b94f7fc CoreFoundation`__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
    frame #12: 0x000000019b94a6d0 CoreFoundation`__CFRunLoopRun + 1724
    frame #13: 0x000000019b949ce8 CoreFoundation`CFRunLoopRunSpecific + 424
    frame #14: 0x00000001a5a9438c GraphicsServices`GSEventRunModal + 160
    frame #15: 0x000000019fa78444 UIKitCore`UIApplicationMain + 1932
    frame #16: 0x0000000100fc866c FXTracker`main at AppDelegate.swift:8:7
    frame #17: 0x000000019b7d18f0 libdyld.dylib`start + 4
在“调试导航器”窗口中,它被打开到线程1,并且有一个名为“原始异常回溯”的下拉列表,如下所示:

0 _exceptionPreprocess
9 Sequence<>.contains(_:)
10 closure #3 in closure #1 in closure #2 in FXEditorViewController.loadBadges()
19 UIApplicationMain
20 main
21 start
0\u异常预处理
9序列。包含(:)
10闭包#3在闭包中#1在闭包中#2在FXEditorViewController.loadBadges()中
19 UIC应用程序主
20主要
21开始

可以安全地说,崩溃是由
loadBadges()
中的闭包#3#闭包#1#2引起的吗?

在这种情况下,您可以设置异常断点

这里

然后在这里(在例外->全部中)


我需要设置条件吗?@acidgate,不需要,它只是高亮显示,默认情况下会截取所有内容,但如果需要,您可以按条件过滤。