【发布时间】:2021-07-26 19:08:03
【问题描述】:
我是 SwiftUI 领域的初学者,在开发我的第一个应用程序时遇到了麻烦。
我不知道为什么我无法从外部 swift 文件访问模型参数。
这是 FirebaseManager 文件:
import Foundation
import Firebase
class FirestoreManager : ObservableObject {
@Published var serate = [SerateModel]()
private var db = Firestore.firestore()
func fetchData() {
db.collection("Serate").addSnapshotListener{(querySnapshot, error) in
guard let documents = querySnapshot?.documents else {
print("No Documents")
return
}
self.serate = documents.map{ ( queryDocumentSnapshot) -> SerateModel in
let data = queryDocumentSnapshot.data()
let name = data["name"] as? String ?? ""
let author = data["author"] as? String ?? ""
let image = data["image"] as? String ?? ""
return SerateModel(nomeSerata: name, autoreSerata: author, immagineSerata: image)
}
}
}
这里是不建议模型参数的视图文件:
import SwiftUI
struct CategoryView: View {
@ObservedObject private var fire = FirestoreManager()
var body: some View {
ScrollView(.horizontal, showsIndicators:false){
HStack {
cardCategoryView(image: fire.serate.image, title: fire.serate.name, author: fire.serate.author)
}
.padding(EdgeInsets(top: 0, leading: 20, bottom: 0, trailing: 10))
}
.onAppear() {
self.fire.fetchData()
}
}
}
特别是在最后一个文件的第 9 行,它不建议我使用 fire.serate.image,而只是建议我使用 fire.serate。
这也是模型文件:
struct SerateModel : Identifiable {
var id : String = UUID().uuidString
var nomeSerata : String
var autoreSerata : String
var immagineSerata : String
}
提前谢谢各位。
更新
jnpdx 提出的两种方案我都试过了,还是不行。
在这两种情况下,xCode 都无法向我建议完整路径 fire.serate.something。
例如,对于变量Image,错误是:
“[SerateModel]”类型的值没有成员“图像”
谢谢
【问题讨论】:
标签: firebase google-cloud-firestore swiftui