2017-10-13 114 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推理屬性。我意識到這是一個壞主意,所以你有新的建議? –