libc++ABI.dylib:终止时出现未捕获的NSException(LLDB)类型的异常

我正在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)
398856 次浏览

CMYR-“如果您将一个按钮连接到不再存在(或已重命名)的IBAction,也可能发生这种情况。”

如果您遇到此问题,请确保转到Main.Storyboard,右键单击电话轮廓顶部的黄色框图标(视图控制器),然后删除带有黄色标志的插座。

在这种情况下,您可能会命名一个操作,然后将其重命名。您需要删除旧名称,如果这是唯一的问题,将在SIM中启动!

enter image description here

它也可能是错误的不间断连续标识符名称。 例如-

performSegueWithIdentifier("wrongSegueName", sender: self)

我是Xcode的新手,所以我花了几个小时来解决这个问题,以便加载XLS文件。我跟踪了上面的大部分示例代码,但它们都没有解决Xcode显示的错误。

我找到的解决方案是,当我们通过拖放到项目->支持文件将XLS文件导入到Xcode时,我们需要指定“添加到目标:”勾选要添加的项目。

当我更改连接到我的一个按钮的变量的名称时,我遇到了这个问题。所以记住这一点!

我在Xcode7上开始出现这种情况,我没有可以删除的带黄旗的插座。

唯一对我有用的是替换AppDelegate中的这一行:

[window addSubview:viewController.view];

向:

[window setRootViewController:viewController];

在你的视图控制器中,一个按钮可能有1个以上的IBAction,试着找出这些,并删除控制器中该按钮以前的所有项目,然后创建新的按钮。这将解决你的问题。

请确保您没有将相对约束动态应用于视图层次结构中尚不存在的视图。

UIView *bottomView = [[UIView alloc] initWithFrame:CGRectZero];
[self.view addSubview:bottomView];


bottomConstraint = [NSLayoutConstraint constraintWithItem:bottomView
attribute:NSLayoutAttributeBottom
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeBottom
multiplier:1
constant:0];
bottomConstraint.active = YES;

在上面的示例中,底视图在对其应用相对约束之前已成为视图层次结构的一部分。

对我来说,问题出在我的IBAction和UIButton上。

当您按住Ctrl并拖动以从UIButton创建IBAction时,请确保从“类型”下拉列表中选择“ UIButton ”。当您点击UIButton时,默认选择AnyObject会导致应用程序崩溃。

enter image description here

其他解决方案对我不起作用,这是我的。它应用在Swift 2.3中运行时仅适用于Xcode 8传统模式:

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

这是雷达,其中包含更多详细信息。

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

@IBAction func editPictureTapped(sender: UIButton) {  // not working
print("Tapped")
}

改为:

@IBAction func editPictureTapped(_: UIButton) {     // working OK
print("Tapped")
}

适用于SWIFT 2.3

这似乎是Xcode 8和Swift 2.3中的一个错误,如果您通过Storyboard将按钮操作连接到您的代码,请确保Xcode没有重命名该操作,对我来说,它是在方法的末尾添加一个与发件人:,因此我要做的是转到我的代码并重命名该方法,以匹配Xcode编写的方法。

对于任何其他版本,请检查正确答案。

我通过以下两种方式获得此错误:

当我推入另一个UIViewController时,我得到了这个错误。

然而,我错误地从UITabBarController中继承了另一个类,并得到了这个错误。

我是怎么修好的?我从UIViewController中创建了子类,我不再崩溃了:)


我不想用故事板。所以我删了。然而,我忘记在项目设置中删除它的引用。我只是点击了项目>常规>部署信息>,然后我将主界面设置为黑色空间。(它以前设置为“主”)

正如你所看到的,在这两种情况下,你都会因为访问某个确实存在的对象而得到一个错误。

我的情况稍有不同,我尝试进入UINavigationController,而为我解决这个问题的方法是获取主队列部分。

对于Objective-C:

dispatch_async(dispatch_get_main_queue(), ^{
[self performSegueWithIdentifier:@"SegueName" sender:self];
});

对于SWIFT 3:

DispatchQueue.main.async { [weak self] in
self?.performSegue(withIdentifier: "SegueName", sender: self)
}

在我的例子中,它是iPad上的UIAlertView: UIAlertController崩溃(iPad)。我没有设置SourceView和SourceRect.

对于我的例子,Xcode 8.2.1,我在视图控制器中有一个地图套件视图。所以我去了

构建阶段>将二进制文件与库链接

并添加MapKit.framework,然后就可以了。

我认为这也适用于其他需要框架的观点。

在IOS 9上运行的P.S.告诉我有一个关于地图套件视图的问题,而在IOS 10上什么也没有告诉我!

只有“世界末日”解决方案对我有效:

  • 从设备中删除应用程序
  • 清洁项目
  • 在设备上运行新安装

在我的例子中,由于断言失败(这是由我们的代码设置的),Xcode累了,无法使用此消息启动应用程序。

在另一台设备上运行显示断言失败,我们能够修复,一切恢复正常。

我将把我的问题添加到可能的解决方案列表中,以防其他人在此线程上发生。

TableView单元格标识符。首先,确保你的细胞有一个标识符。其次,确保在单元格出列时引用该标识符。

在我的例子中,它是InterfaceBuilder.我从另一个ViewController复制了一些视图,这搞乱了约束。

在InterfaceBuilder中,我在ViewController上遇到了红色箭头错误。

在执行过程中,应用程序崩溃。

斯威夫特4

由于UIVisualEffectView API中的更改,

我遇到了此错误。在Swift 3中,可以这样做: MyVisualLefectView.AddSubView(某些子视图)

但在Swift 4中,我不得不将其更改为: MyVisualEffectView.ContentView.AddSubView(SomeSubView)

在我的例子中,应用程序崩溃了,因为我没有设置故事板的目标成员。

它也可能是一个中断触发的不间断连续,检查您的故事板,只要您重新连接不间断连续或出口,它应该再次工作。

Check the Segues

确保不间断连续的Identifier正确,并且与您的代码相似。

enter image description here

在我的示例中,项目Build Settings包含Framework Search PathsLibrary Search Paths的一些到不存在的目录。

当我在使用可视化格式化程序构建约束时,其中一个视图出现了输入错误,我也遇到了同样的错误。我希望这能帮助一些人。或者有一天再来找我。

在我的例子中,如果您正在使用UITableView,请不要忘记在ViewController旁边添加UITableViewDelegate和UITableViewDataSource,如下所示。class MenuController: UIViewController, UITableViewDelegate, UITableViewDataSource

将旧项目(用Swift 2.3编写)转换为Swift 3时,需要添加这些关键字。

我有两个问题:

1)我的目标没有包含故事板文件中使用的视图控制器。

2)我的故事板大约有3年了,我不得不从头开始重新创建标签栏控制器中的一个视图控制器(它只有一个UITextField,我仍然不知道它为什么不工作)

另一个可能的原因是:

在我的例子中,我有一个xib,并且正在调用Bundle.main.loadNibNamed(...,此时它崩溃了。我所有的IBOutletsIBActions似乎都很好。最后,我注意到nib实际上正在加载,但当我尝试访问第一个(也是唯一一个)视图(nib.first)时,它不起作用。事实上,nib.count返回了一个非常大的整数(Max int?),而不是预期的1。我试着重新添加视图,但仍然没有成功。

最后,我删除了整个xib文件,并重新开始(但我在剪贴板中保留了一些视图,以便我可以粘贴它们,而不是再次重新创建它们)。

这起作用了!

是否碰巧设置了操作系统_活动_模式变量? 要检查您是否设置了此变量(并将其关闭),请在Xcode 9中执行以下操作:

从Xcode菜单中选择产品->;方案->;编辑方案.. 选择运行方案并在“参数”下查找。 如果看到选中了“操作系统_活动_模式”变量,请取消选择它

在Xcode 9和Swift 4中:

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

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

  3. 选择新断点,按住Ctrl键单击,编辑断点。

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

enter image description here

如果您正在使用React Native和React-Native-Firebase,请确保链接Google-services.plist文件(https://github.com/invertase/react-native-firebase/issues/313#issuecomment-320435560)。

在我的例子中,我调用了一个委托方法,但该方法没有声明。

此错误是一般性错误,出现的原因有很多。确保您没有禁用您的日志以查看实际发生的情况。如果您禁用了ABC,请在方案中启用操作系统_活动_模式。您可能已经禁用了它,以防止大量不相关的日志,但它们很方便。

您还可以通过添加异常断点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 if you’ve forgot to register your custom cell identifier
7) Check for any missing flag in the Proejct Setting (-obj) or any other linker flag etc.

如果您有一个表,但忘记将UITableViewDelegate和UITableViewDataSource分配给该类,则可能会发生这种情况。

Xcode 11.2的已知错误可能导致此问题。Xcode 11.2已被弃用。

下载Xcode 11.2.1解决了这个问题。

苹果11.2漏洞论坛

我还将Real Device升级到了当前的IOS,但我不认为这是问题所在。

如果有人在expo eject之后来到这里,那么下面的步骤将会有所帮助。

  1. 请在您的终端中expo start
  2. 转到IOS/并使用pod install安装Pod
  3. 通过Xcode运行构建。