JSQMessagesviewcontroller не может выполнять переходы - PullRequest
0 голосов
/ 27 мая 2018

, поэтому я создал контроллер представления чата с помощью JSQMessagesViewController, следуя этому уроку здесь: https://learnappmaking.com/chat-app-ios-firebase-swift-xcode/#comment-1930 мой код более или менее такой же, я не вносил в него ничего существенного, учебник предназначен только для одногоКонтроллер вида, поэтому я добавил другие контроллеры вида для приложения, но каждый раз, когда оно выполняет переходы, я получаю ошибку SIGABRT, независимо от того, переключаюсь ли я с помощью executeSegue или с помощью кнопки назад на панели навигации, он продолжает подавать сигнал SIGABRT.любая помощь будет оценена.

это мой viewdidload:

 override func viewDidLoad() {
    super.viewDidLoad()
    senderId = "1111"
    senderDisplayName = "Bob"
    title = "Steve"

    inputToolbar.contentView.leftBarButtonItem = nil
    collectionView.collectionViewLayout.incomingAvatarViewSize = CGSize.zero
    collectionView.collectionViewLayout.outgoingAvatarViewSize = CGSize.zero
    let query = Constants.refs.databaseChats.queryLimited(toLast: 10)

    _ = query.observe(.childAdded, with: { [weak self] snapshot in

        if  let data        = snapshot.value as? [String: String],
            let id          = data["sender_id"],
            let name        = data["name"],
            let text        = data["text"],
            !text.isEmpty
        {
            if let message = JSQMessage(senderId: id, displayName: name, text: text)
            {
                self?.messages.append(message)

                self?.finishReceivingMessage()
            }
        }
    })
    // Do any additional setup after loading the view.
}

1 Ответ

0 голосов
/ 27 мая 2018

SIGABRT (прерывание сигнала) обычно происходит из-за ошибки ссылки в вашей раскадровке.Вы когда-нибудь меняли имя класса или устанавливали соединение от кнопки одного контроллера представления к другому и затем удаляли это?Если вы изменили имя класса, вы должны убедиться, что имя в коде класса соответствует этому.Если вы удалили кнопочное соединение между контроллерами представления, щелкните по самому контроллеру и на вкладке соединений вы должны удалить его.

...