【问题标题】:Cannot convert value of type '()' to expected argument type '(() -> Void)?'无法将“()”类型的值转换为预期的参数类型“(() -> Void)?”
【发布时间】:2020-03-01 09:50:05
【问题描述】:

我遇到了这样的问题,有没有人知道如何解决? Xcode 11.2,SwiftUI

.onAppear(perform: self.sessionChat.loadMsgInChatRoom(chatRoom: chatRoom)) //then an error

func loadMsgInChatRoom(chatRoom: String) {
        let db = Firestore.firestore()
        db.collection("chatRoom").document(chatRoom).collection("msg")
            .addSnapshotListener { (querySnapshot, err) in
            if err != nil {
                print((err?.localizedDescription)!)
                return
            }
            for i in querySnapshot!.documentChanges {
                if i.type == .added {
                    let user = i.document.get("user") as! String
                    let msg = i.document.get("msg") as! String
                    let idUser = i.document.get("idUser") as! String
                    let dateMsg = i.document.get("dateMsg") as! String
                    let id = i.document.documentID

                    self.msgs.append(dataMessges(id: id, user: user, msg: msg, idUser: idUser, dateMsg: dateMsg))
                }
            }
        }
    }

【问题讨论】:

    标签: swift firebase google-cloud-firestore swiftui ios13


    【解决方案1】:

    .onAppear 需要一个闭包,所以我认为需要大括号

    .onAppear(perform: { self.sessionChat.loadMsgInChatRoom(chatRoom: chatRoom) } )
    

    或更简单的方法:

    .onAppear { 
         self.sessionChat.loadMsgInChatRoom(chatRoom: chatRoom)
    } 
    

    【讨论】:

      猜你喜欢
      • 2017-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 2022-01-21
      相关资源
      最近更新 更多