【发布时间】:2021-08-13 06:00:18
【问题描述】:
我有这个功能:
func fetchMyData<T: Decodable> (completion: @escaping ([T]?) -> Void) {
self.db
.collection("someCollection")
.addSnapshotListener { querySnapshot, error in
guard let documents = querySnapshot?.documents else {
completion(nil)
return
}
let result = documents.compactMap { queryDocumentSnapshot -> T? in
return try? queryDocumentSnapshot.data(as: T.self)
}
completion(result)
}
}
但是当我调用它时:
self.fetchMyData() { arr in if arr != nil {
//
}}
我收到此错误消息(指向“self”):
无法推断通用参数“T”
我试图在整个地方强制转换类型,但没有任何帮助,所以我不确定如何帮助调用来识别 T 的类型。
【问题讨论】:
-
明确指定类型参数:
self.fetchMyData<TReturn>()?