【发布时间】:2021-09-17 14:10:08
【问题描述】:
在我的函数中,我试图将 (id:) 设置为 post.id。 Post 和 ID 在 PostModel 中,我将其引用为 var post : PostModel。但是,使用我当前的代码,我收到以下错误:
在初始化之前使用的变量“self.post”
在所有存储的属性被初始化之前,在方法调用“getComments”中使用的`self'
从初始化器返回而不初始化所有存储的属性
我的应用程序这部分的代码在这里:
import SwiftUI
import Firebase
class CommentsViewModel : ObservableObject{
@Published var comments : [CommentsModel] = []
@Published var noComments = false
@Published var newComment = false
@Published var commentTxt = ""
var post : PostModel
let ref = Firestore.firestore()
let uid = Auth.auth().currentUser!.uid
init() {
getComments(id: post.id) //this has to resort to post.id
}
func getComments(id: String) {
//code for function
}
在我的 getComments 函数中,我试图像这样调用“id”:
ref.collection("Posts").document(id).collection("Comments").addSnapshotListener
如有任何帮助,将不胜感激。
【问题讨论】:
-
该错误告诉您,如果没有正确实例化对象,您将无法从
self访问任何属性或方法。在您的情况下,由于您的类有一个不是可选的post属性,因此您需要在初始化时定义正确的值,然后再调用getComments(id:)。
标签: ios xcode firebase google-cloud-firestore swiftui