NSException错误 - Swift 4

时间:2017-10-13 01:31:12

标签: ios firebase xcode9 swift4 nsexception

堆栈溢出社区。请不要将此问题标记为重复,因为我已经看到了有关此问题的所有其他帖子,并且已经完成了大部分着名的解决方案。

目前,我有一些代码允许用户向组发送消息,还可以更改组缩略图和标题。但是,当用户执行任何此操作时,我的代码崩溃了。我将我的数据存储在firebase中(数据已成功上传)。当我从swift 3升级到swift 4时,问题就出现了。另外,这是我得到的具体错误:

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

以下是我尝试解决问题的一些解决方案/方法:

  1. 我已经知道这是一个插座问题,因为视图控制器是以编程方式创建的。
  2. 我尝试添加一个异常断点,但它没有向我显示崩溃发生位置的任何特定代码行。
  3. 我也尝试过清理,重新构建和关闭Xcode,但这样做并没有用。
  4. 我不认为将数据上传到firebase是一个问题,因为我可以在我的应用程序的其他部分中使用。
  5. 我还尝试滚动浏览线程以更深入地了解崩溃发生的位置,但这并没有多大帮助。
  6. 这是我的控制台输出的图片: 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

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

1 个答案:

答案 0 :(得分:0)

由于您不知道错误发生的位置,因此在代码中放置一些断点可能是个好主意,这样您就可以查明崩溃。然后,当您知道错误发生的确切行时,修复错误会更容易。

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

如果是这种情况,您可以找到更多详细信息 here

祝你好运狩猎。