SWIFT4上下文类型'FPChat!.Type'不能与字典文字一起使用

时间:2018-01-19 18:11:01

标签: swift

我需要初始化一个对象,并将它通过prepareforsegue传递给另一个类。

下面代码的最后一行抛出“Contextual type'FPChat!.Type'不能与字典文字一起使用”

    if (segue.identifier == "chatmessages") {
        let vc = segue.destination as! FPChatMessageViewController
        //vc.currentChat = fPChat
    }
  }

     fPchat = FPChat?
    // Start the Chat
    @IBAction func Chat(_ sender: UIButton) {


        // Create a new entry in chats. This variable is passed with prepareforsegue
        let chatRef = ref.child("chats").childByAutoId()
        let chatId = chatRef.key
        //fPchat = FPChat?
        let fPchat = FPChat.currentChat(currentChatID: chatId)

聊天课程:

import Firebase

class FPChat {
    var chatID = ""
    var chatDate: Date!
    var text = ""
    var messages: [FPChatMessage]!
    var author: FPUser!
    var mine = true

    // Calling FPChat.currentChat(id) I have back the FPChat object 
    static func currentChat(currentChatID: String) -> FPChat {
        return FPChat(chatID: currentChatID)
    }

    private init(chatID: String) {
        self.chatID = chatID
    }

    init(snapshot: DataSnapshot, andMessages messages: [FPChatMessage]) {
        guard let value = snapshot.value as? [String: Any] else { return }
        self.chatID = snapshot.key
        if let text = value["text"] as? String {
            self.text = text
        }
        guard let timestamp = value["timestamp"] as? Double else { return }
        self.chatDate = Date(timeIntervalSince1970: (timestamp / 1_000.0))
        guard let author = value["author"] as? [String: String] else { return }
         self.author = FPUser(dictionary: author)
         self.messages = messages
         self.mine = self.author.userID == Auth.auth().currentUser?.uid
  }

}

我做错了什么?

0 个答案:

没有答案