2017-10-13 115 views
0

堆栈溢出社区。请不要将这个问题标记为重复的,因为我已经看到所有关于这个问题的其他帖子,并且几乎都经历了大部分着名的解决方案。NSException错误 - Swift 4

目前,我有一些代码,允许用户发送消息到一个组,还可以更改组缩略图和标题。但是,在用户做这些事情之后,我的代码崩溃了。我将数据存储在firebase中(数据正在成功上传)。这个问题开始时,我迅速从3到4迅疾也进行了升级,这是我收到的特定错误:

libc++abi.dylib: terminating with uncaught exception of type NSException 

这里是我试图解决我的问题的一些解决方案/方法:

  1. 我嘲笑,这是一个出口问题,因为视图控制器是以编程方式创建的。
  2. 我试着添加一个异常断点,但是它并没有显示出任何特定的代码行来发生崩溃。
  3. 我也尝试清理,重新构建和关闭Xcode,但是这种方式不起作用。
  4. 我不认为它是上传数据到firebase的问题,因为我可以在我的应用程序的其他部分。
  5. 我也尝试通过线程滚动来更深入地了解发生崩溃的位置,但这并没有太大的帮助。

这里是我的控制台输出的画面: The main thread ui stuff is entered into the console is not triggered by the crash. The only output triggered by the crash is the error message above.

这里是我用来更新集合视图代码:

func observeConversationMessagesWithConversationId(conversationId: String) { 
    Database.database().reference().child("conversation-messages").child(conversationId).observe(.childAdded, with: { (snapshot) in 
     if let messages = ConversationMessages(snapshot: snapshot) { 

      self.conversationMessages.append(messages) 

      DispatchQueue.main.async(execute: { 
       self.collectionView?.reloadData() 

       let indexPath = NSIndexPath(item: self.conversationMessages.count - 1, section: 0) 
       self.collectionView?.scrollToItem(at: indexPath as IndexPath, at: .bottom, animated: true) 
      }) 
     } 
    }, withCancel: nil) 
} 

这里是我的podfile

enter image description here

任何帮助,将不胜感激。请注意,我会添加一些代码,但我不知道发生错误的位置。

+0

请问您能否显示屏幕截图错误信息?它在控制台中说了什么? – 3stud1ant3

+0

我刚刚发布了一个截图。请阅读标题以更多地了解控制台输出。 –

+0

好吧,我知道的是,你正在更新你的用户界面的后台线程,就像你正在改变你的用户界面的一些回调,请检查你的代码 – 3stud1ant3

回答

0

由于您不知道错误发生的位置,因此在代码中放置几个​​断点可能是个不错的主意,这样您可以查明崩溃。那么当你知道它发生的确切路线时,修复错误将会容易得多。

我有同样的崩溃,它与UIVisualEffectView,特别是与添加子视图,而不是将它添加到其.contentView

如果这也是你的情况,你可以找到更多的细节here

好运虫寻觅。

+0

嗯,我想出了错误,并开始工作,如果我打开objc推理属性。我意识到这是一个坏主意,所以你有新的建议? –