Ошибка NSException - Swift 4
Сообщество переполнения стека. Пожалуйста, не помечайте этот вопрос как дубликат, так как я видел все другие посты по этому поводу и в значительной степени прошел через большинство известных решений.
В настоящее время у меня есть некоторый код, который позволяет пользователю отправлять сообщения группе, а также изменять эскиз и заголовок группы. Однако, когда пользователь делает что-либо из этого, мой код падает. Я храню свои данные в базе данных (данные успешно загружаются). Проблема началась, когда я обновил swift 3 до swift 4. Кроме того, это конкретная ошибка, которую я получаю:
libc++abi.dylib: terminating with uncaught exception of type NSException
Вот некоторые решения / методы, которые я пытался решить, чтобы решить мою проблему:
- Я сказал, что это проблема розетки, поскольку контроллер представления создается программно.
- Я попытался добавить точку останова исключения, но она не показала мне никаких конкретных строк кода для места, где произошел сбой.
- Я также попытался очистить, перестроить и закрыть XCode, однако это не работает.
- Я не думаю, что это проблема с загрузкой данных в Firebase, как я могу в других частях моего приложения.
- Я также попытался прокрутить потоки, чтобы получить более глубокое понимание того, где происходит сбой, однако это не сильно помогло.
Вот изображение моего вывода на консоль:
Вот код, который я использую для обновления представления коллекции:
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)
}
Вот мой подфайл
Любая помощь будет оценена. Пожалуйста, обратите внимание, что я добавил бы некоторый код, но я понятия не имею, где происходит ошибка.
1 ответ
Поскольку вы не знаете, где происходит ошибка, было бы неплохо поместить несколько точек останова в ваш код, чтобы вы могли точно определить место сбоя. Тогда будет намного легче исправить ошибку, когда вы будете точно знать, где она происходит.
У меня был такой же сбой, и это было связано с UIVisualEffectView
и, в частности, с добавлением подпредставления к нему вместо добавления его к его .contentView
,
Если это ваш случай, вы можете найти более подробную информацию здесь.
Удачи на охоте