调试一个奇怪的崩溃 - NSInternalInconsistencyException

时间:2016-02-24 04:26:52

标签: 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];
}

1 个答案:

答案 0 :(得分:3)

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

它还在崩溃日志中标记为bug!

<强>更新

检查完整日志后,它看起来像是单指点击

20 -[UITextInteractionAssistant(UITextInteractionAssistant_Internal) oneFingerTap:]

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

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

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