2016-12-14 72 views
1

我正在嘗試在我的Swift 3項目中使用JSQMessagesVC。它通過可可豆莢安裝,一切看起來都很好。問題是我無法實現collectionView方法並不斷收到錯誤。誰能幫我?無法實現JSQMessagesViewController所需的方法Swift 3

Errors

 
import UIKit 
import JSQMessagesViewController 

class ChatViewController: JSQMessagesViewController { 

    var messages = [JSQMessage]() 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     collectionView!.delegate = self 
     collectionView!.dataSource = self 

     collectionView!.collectionViewLayout.incomingAvatarViewSize = CGSize.zero 
     collectionView!.collectionViewLayout.outgoingAvatarViewSize = CGSize.zero 

    } 

    override func collectionView(_ collectionView: JSQMessagesCollectionView, messageDataForItemAt indexPath: IndexPath) -> JSQMessageData { 
     return messages[indexPath.item] 
    } 

    override func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
     return messages.count 
    } 

    override func collectionView(_ collectionView: JSQMessagesCollectionView!, messageBubbleImageDataForItemAt indexPath: IndexPath!) -> JSQMessageBubbleImageDataSource! { 
     let message = messages[indexPath.item] // 1 
     if message.senderId == senderId { // 2 
      return outgoingBubbleImageView 
     } else { // 3 
      return incomingBubbleImageView 
     } 
    } 

    override func collectionView(_ collectionView: JSQMessagesCollectionView!, avatarImageDataForItemAt indexPath: IndexPath!) -> JSQMessageAvatarImageDataSource! { 
     return nil 
    } 


    lazy var outgoingBubbleImageView: JSQMessagesBubbleImage = self.setupOutgoingBubble() 
    lazy var incomingBubbleImageView: JSQMessagesBubbleImage = self.setupIncomingBubble() 

    private func setupOutgoingBubble() -> JSQMessagesBubbleImage { 
     let bubbleImageFactory = JSQMessagesBubbleImageFactory() 
     return bubbleImageFactory!.outgoingMessagesBubbleImage(with: UIColor.jsq_messageBubbleBlue()) 
    } 

    private func setupIncomingBubble() -> JSQMessagesBubbleImage { 
     let bubbleImageFactory = JSQMessagesBubbleImageFactory() 
     return bubbleImageFactory!.incomingMessagesBubbleImage(with: UIColor.jsq_messageBubbleLightGray()) 
    } 




// override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 
//  //Your Logic here 
// } 

} 

+1

請告訴我們你收到了什麼錯誤 –

+0

甚至實現了我無法擺脫這些消息的方法。我正在嘗試關注Raywenderlich教程https://www.raywenderlich.com/140836/firebase-tutorial-real-time-chat-2 –

+0

您使用的是最新版本的JSQMessagesViewController嗎? –

回答

2

我用一個腳本編譯過程中檢測到一些標記(TODO,FIXME和ERROR)。所以,我有錯誤的方法簽名和腳本錯誤檢測的組合。

TAGS = 「TODO:| FIXME:」 ERRORTAG = 「ERROR:」 發現 「$ {} SRCROOT」(-name 「.H」 -or -name 「 .M」 -or -name「 .swift「)-print0 | ($ TAGS)。 \ $ |($ ERRORTAG)。* \ $「| $」 perl -p -e「s /($ TAGS)/ warning:\ $ 1 /」| perl -p -e「s /($ ERRORTAG)/ error:\ $ 1 /」

+0

問題已修復。 –

+0

你好,你是如何解決你的問題的。 –

+0

我已經在不使用ERRORTAG的情況下重寫了TODO腳本。 TAGS =「TODO:| FIXME:」 找到「$ {SRCROOT}」\( - 名稱「* .h」 - 或 - 名稱「* .m」 - 或 - 名稱「* .swift」\) - print0 | xargs -0 egrep --with-filename --line-number --only-matching「($ TAGS)。* \ $」| perl -p -e「s /($ TAGS)/ warning:\ $ 1 /」 –

相關問題