2017-09-26 3 views
0

Ci-dessous l'appel de fonction générant le thread 1: EXC_BREAKPOINT (code = 1, sous-code = 0x189d35a80).CollectionView générant SIGABRT sur pushViewController

func showChatView(message: ChatMessage) { 
     DispatchQueue.main.async { 
      if self.chatViewController == nil { 
       let mainStoryboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 
       self.chatViewController = mainStoryboard.instantiateViewController(withIdentifier: "VAChatViewController") as? VAChatViewController 
       self.chatViewController?.delegate = self; 
      } 
      self.chatViewController?.messages += [message] 

      self.navigationController?.pushViewController(self.chatViewController!, animated: true, completion: { 
       let buttonMessage = self.chatViewController?.messages.last 
       let hasButtons = buttonMessage?.hasButtons 
       if hasButtons! { 
        let vaButtonModel = ChatMessage(buttons: buttonMessage?.buttons) 
        self.chatViewController?.addNewMessage(vaButtonModel) 
       } 
      }) 
     } 
    } 

Un autre chose- VAChatViewController implémente CollectionView pour afficher les événements de chat entrants, ce qui est une réponse à un message de chaîne « xyz ». Dans les délégués collectionView, j'obtiens le tableau [count]> 0 mais il n'appelle pas le collectionView: cellForItemAt après numberOfItems et se bloque avec SIGABRT suivi d'un crash. Une idée?

+0

Postez le code de vos méthodes 'UICollectionViewDelegate' et' UICollectionViewDataSource'. – Glenn

+0

Seule la source de données est implémentée! numberOfItemsInSection et cellForItemAt: func CollectionView (_ CollectionView: UICollectionView, section numberOfItemsInSection: Int) -> Int { retour messages.count } laisser un message = self.messages [indexPath.item] commutateur message.messageType { cas .chatContent: let cell = collectionView.dequeueReusableCell (avecReuseIdentifier: "ChatCollectionCell", pour: indexPath) as! ChatCollectionViewCell cell.setupWithMessage (message) return cell – Tarun

Répondre

0

Égoïste moi! : P J'ai pu résoudre le problème car il s'agissait d'une erreur stupide. J'appelle showChatView: plusieurs fois pour la raison que j'ai fait un seul objet de ChatViewController, mais j'ai oublié de mettre pushViewController sous n'importe quelle vérification. Et, c'est la raison de l'accident. Merci