ios - 调试一个奇怪的崩溃 - NSInternalInconsistencyException

标签 ios objective-c autolayout

我的应用程序发生了奇怪的崩溃(仅限 iPad 的 9.x),我不确定如何调试它,因为日志无助于发现正在发生的事情。

最奇怪的是日志显示Auto layout internal error ,但我的应用程序没有打开自动布局。

任何人都知道如何调试导致它的原因?

enter image description here

我认为导致崩溃的部分代码:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapBackground:)];
    [self.ivBackground addGestureRecognizer:tap]; // UIImageView (background)
}

- (void)tapBackground:(UITapGestureRecognizer*)tap
{
    [self.view endEditing:YES];
    [self dismissViewControllerAnimated:YES completion:nil];
}

最佳答案

从崩溃日志中您可以看到它与设备的键盘有关。您能否在第 4 行和第 36 行之间展开崩溃日志或上传完整的崩溃日志,以便我查看。谢谢

它也被标记为 bug!在崩溃日志中。

更新:

检查完整日志后,看起来像单指轻敲

20 -[UITextInteractionAssistant(UITextInteractionAssistant_Internal) oneFingerTap:]

导致 textField 成为第一响应者,即设置键盘,但同时手势触发了 endEditing 和 viewController 的解除。

键盘正在使应用程序崩溃,因为在自动布局完成设置之前已删除 textField。

我会重新审视你如何构建你的观点和姿态,以及你如何解雇或关闭那个 VC。

关于ios - 调试一个奇怪的崩溃 - NSInternalInconsistencyException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35593259/

相关文章:

ios - 让我知道这段代码的功能

ios - 带有较长标签的标签 ListView 未在 iOS swift 中完全显示

ios - -[__NSDictionaryM intValue] : unrecognized selector sent to instance 0x13f26a60

objective-c - 在 Core Data 迁移后插入数据

iOS 自动布局 : Align left edge of a UILabel with horizontal center in container?

ios - 如何设置根 Stack View 的乘数值(与 super View 的宽度相等,乘数为 0.7)iPhone 为 0.7,iPad 为 0.6?

iPhone 将图像发布到 Facebook Feed

iphone - 应用程序在 NSURLConnection 中崩溃

ios - 以编程方式向 TextView 添加约束

ios - 使用 AutoLayout 调整 UIScrollView 内的 UIView 大小以进行滚动?