아래 함수 호출 생성 스레드 1 : EXC_BREAKPOINT (코드 = 1, 서브 코드 = 0x189d35a80).pushViewController에서 SIGABRT를 생성하는 CollectionView
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)
}
})
}
}
하나 더 쿄코 VAChatViewController 문자열 메시지 "XYZ"에 대한 응답 들어오는 채팅 이벤트를 표시 할 collectionView을 구현합니다. collectionView 대리자에서 배열 [count]> 0을 얻었지만 numberOfItems 다음에 collectionView : cellForItemAt를 호출하지 않고 SIGABRT와 충돌 한 후 위의 충돌이 발생했습니다. 어떤 생각?
'UICollectionViewDelegate' 및'UICollectionViewDataSource' 메소드의 코드를 게시하십시오. – Glenn
데이터 소스 만 구현됩니다! numberOfItemsInSection 및 cellForItemAt (: UICollectionView, numberOfItemsInSection 부 : _ collectionView INT) collectionView FUNC -> {지능 복귀 messages.count } 있도록 메시지 self.messages = [indexPath.item] 스위치 message.messageType { 경우 .chatContent : cell = collectionView.dequeueReusableCell (withReuseIdentifier : "ChatCollectionCell", 즉 : indexPath)을! ChatCollectionViewCell cell.setupWithMessage (message) 반환 셀 – Tarun