libc ++ abi.dylib:以NSException类型的未捕获异常终止(lldb)

Nic*_*ick 179 ios swift

我在swift中编写应用程序,当我在iPhone模拟器上运行测试应用程序时,一切正常,但我尝试向右滑动,这是我添加的一个手势,以便转到下一页(View Controller Two)它崩溃并在控制台日志中显示此错误报告.

2014-10-18 12:07:34.400 soundtest[17081:818922] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<soundtest.ViewControllerTwo 0x7f92f1f20090> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key sfdfa.'
*** First throw call stack:
(
    0   CoreFoundation                      0x00000001067813f5 __exceptionPreprocess + 165
    1   libobjc.A.dylib                     0x00000001082afbb7 objc_exception_throw + 45
    2   CoreFoundation                      0x0000000106781039 -[NSException raise] + 9
    3   Foundation                          0x0000000106b984d3 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 259
    4   CoreFoundation                      0x00000001066cb400 -[NSArray makeObjectsPerformSelector:] + 224
    5   UIKit                               0x00000001072ce97d -[UINib instantiateWithOwner:options:] + 1506
    6   UIKit                               0x000000010712f698 -[UIViewController _loadViewFromNibNamed:bundle:] + 242
    7   UIKit                               0x000000010712fc88 -[UIViewController loadView] + 109
    8   UIKit                               0x000000010712fef9 -[UIViewController loadViewIfRequired] + 75
    9   UIKit                               0x000000010713038e -[UIViewController view] + 27
    10  UIKit                               0x00000001076cd83f -[_UIFullscreenPresentationController _setPresentedViewController:] + 65
    11  UIKit                               0x000000010710bc49 -[UIPresentationController initWithPresentedViewController:presentingViewController:] + 105
    12  UIKit                               0x000000010713c121 -[UIViewController _presentViewController:withAnimationController:completion:] + 1746
    13  UIKit                               0x000000010713e461 __62-[UIViewController presentViewController:animated:completion:]_block_invoke + 132
    14  UIKit                               0x000000010713e385 -[UIViewController presentViewController:animated:completion:] + 229
    15  UIKit                               0x00000001073bb9d6 _UIGestureRecognizerSendActions + 262
    16  UIKit                               0x00000001073ba679 -[UIGestureRecognizer _updateGestureWithEvent:buttonEvent:] + 532
    17  UIKit                               0x00000001073bf296 ___UIGestureRecognizerUpdate_block_invoke662 + 51
    18  UIKit                               0x00000001073bf192 _UIGestureRecognizerRemoveObjectsFromArrayAndApplyBlocks + 254
    19  UIKit                               0x00000001073b520d _UIGestureRecognizerUpdate + 2796
    20  UIKit                               0x00000001070520a6 -[UIWindow _sendGesturesForEvent:] + 1041
    21  UIKit                               0x0000000107052cd3 -[UIWindow sendEvent:] + 667
    22  UIKit                               0x000000010701fae1 -[UIApplication sendEvent:] + 246
    23  UIKit                               0x000000010702cbad _UIApplicationHandleEventFromQueueEvent + 17370
    24  UIKit                               0x0000000107008233 _UIApplicationHandleEventQueue + 1961
    25  CoreFoundation                      0x00000001066b6ad1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    26  CoreFoundation                      0x00000001066ac99d __CFRunLoopDoSources0 + 269
    27  CoreFoundation                      0x00000001066abfd4 __CFRunLoopRun + 868
    28  CoreFoundation                      0x00000001066aba06 CFRunLoopRunSpecific + 470
    29  GraphicsServices                    0x000000010a1699f0 GSEventRunModal + 161
    30  UIKit                               0x000000010700b550 UIApplicationMain + 1282
    31  soundtest                           0x000000010624503e top_level_code + 78
    32  soundtest                           0x000000010624507a main + 42
    33  libdyld.dylib                       0x000000010ae4a145 start + 1
    34  ???                                 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb) 
Run Code Online (Sandbox Code Playgroud)

Tra*_*app 378

CMYR - "如果您已将按钮连接到不再存在(或已重命名)的IBAction,他也可能发生"

如果您遇到此问题,请确保转到Main.storyboard,右键单击电话号码顶部的黄色框图标(视图控制器),然后用黄色标记删除插座.

在这样的实例中发生的事情是你可能命名一个动作,然后重命名它.您需要删除旧名称,如果这是唯一的问题将立即开始在SIM中!

在此输入图像描述

  • 很好的答案,谢谢!这是XCode的一个严重漏洞.错误处理需要大量的开发. (7认同)
  • 我也遇到了黄色三角形的问题,但修复这些三角形并没有解决我的崩溃问题.:( (3认同)

Sid*_*war 77

你有没有设置OS_ACTIVITY_MODE变量?要检查是否设置了此变量(并将其关闭),请在Xcode 9中执行以下操作:

Select from Xcode menu Product -> Scheme -> Edit Scheme.. Select the Run scheme and look under Arguments. If you see the OS_ACTIVITY_MODE variable checked, deselect it

  • 好悲伤,Apple.他们未修复的操作系统错误迫使我们打开它,然后我们错过了实际重要的调试消息.很好的捕获,Siddhesh. (11认同)

Ahm*_*tfy 65

在Xcode 9和Swift 4中:

打印异常堆栈以了解异常的原因:

  1. 转到显示断点导航器.
  2. 添加(+)添加异常断点.

  3. 选择新断点,按住Control键,编辑断点.

  4. 添加操作并输入:po $ arg1

在此输入图像描述

  • 应该注意的是,动作必须是一个“调试器命令”,因为对于引发异常要采取哪种动作有多种选择。但这确实帮助了我!谢谢! (2认同)

And*_*rej 7

其他解决方案并不适用于我,这是我的.在Swift 2.3传统模式下运行时,它仅适用于Xcode 8:

看起来Interface Builder正在尝试重命名应该连接到按钮的方法.

这是一个有更多细节的雷达.

解决方案(解决方法)是手动将方法参数名称替换为_:

@IBAction func editPictureTapped(sender: UIButton) {  // not working
    print("Tapped")
}
Run Code Online (Sandbox Code Playgroud)

改为:

@IBAction func editPictureTapped(_: UIButton) {     // working OK
    print("Tapped")
}
Run Code Online (Sandbox Code Playgroud)


Nav*_*bas 7

就我而言,我正在调用委托方法,但未声明该方法。

此错误是通用错误,可能由于多种原因而出现。确保您没有禁用日志以实际查看发生了什么。如果已禁用,请在方案中启用OS_ACTIVITY_MODE。您可能已禁用它,以防止出现许多不相关的日志,但是它们很方便。

您还可以通过添加异常断点来更详细地跟踪原因po $arg1。正如艾哈迈德·洛特菲(Ahmed-Lotfi)所述

这是您可以通过的常见清单。

2) Check if you have renamed an IBOutlet and calling it
3) Check if you have renamed a method name or the method doesn't exist
4) Check if you are trying to add or remove any view from hierarchy
5) Check for any missing framework or library
6) Check for any missing flag in the Proejct Setting (-obj) or any other linker flag etc.
Run Code Online (Sandbox Code Playgroud)


M_R*_*R_K 6

也可能是错误的 Segue 标识符名称。例如——

performSegueWithIdentifier("wrongSegueName", sender: self)
Run Code Online (Sandbox Code Playgroud)