Ios 在函数中使用结构并在@iAction(Swift)中引用它时出现问题

Ios 在函数中使用结构并在@iAction(Swift)中引用它时出现问题,ios,swift,struct,Ios,Swift,Struct,我必须在函数中使用struct来获得要编辑的Firestore文档的正确路径。但我不知道如何在@iAction中引用此func,也不知道如何解决它给我带来的错误:无法将“TextPost.type”类型的值转换为预期的参数类型“TextPost” @IBAction func likeButton(_ sender: Any) { likeIt(with: TextPost) //Cannot convert value of t

我必须在函数中使用struct来获得要编辑的Firestore文档的正确路径。但我不知道如何在@iAction中引用此func,也不知道如何解决它给我带来的错误:
无法将“TextPost.type”类型的值转换为预期的参数类型“TextPost”

@IBAction func likeButton(_ sender: Any) {
        likeIt(with: TextPost)                          //Cannot convert value of type 'TextPost.Type' to expected argument type 'TextPost'
    }

func likeIt(with model: TextPost){
        let db = Firestore.firestore()
        let userID = Auth.auth().currentUser!.uid
        let docRef = db.collection("posts").document(model.postID)

        if self.liky.tintColor == UIColor.red{
            docRef.updateData([
                "hasLiked": FieldValue.arrayRemove(["\(userID)"])
            ])
            print("removed like")
        }else{
            docRef.updateData([
                "hasLiked": FieldValue.arrayUnion(["\(userID)"])
            ])
            print("added like")
        }
    }
我的结构位于另一个名为:
popularViewController
的ViewController文件中,如下所示:

struct TextPost {
    let numberOfComments: Int
    let username: String
    let timestampName: String
    let userImageName: String
    let textName: String
    let postID: String
}

请注意,我在做很多猜测。视图控制器中的某个位置是
TextPost
的实例。它很可能被命名为
textPost
,带有小写字母t

类MyViewController:UIViewController{

var textPost:textPost//您只声明了一个变量“var textPost:textPost”。它还没有分配任何值。因此它会抛出异常,因为它发现为零。请尝试为它分配一些值。尝试如下所示:


var textPost:textPost=textPost.init(numberOfComments:3,用户名:check,时间戳名称:check,userImageName:check,textName:check,postID:check)

您需要传入您的结构的引用,而不是iBaction中的结构名称“TextPost”?我该如何引用我的结构?@TejaNandamuri抱歉,如果这是一个愚蠢的问题,我仍在学习您之前是否创建了对该结构的引用,或者您想传入该结构的新引用?我已经在另一个Vi中创建了一个引用ewController,所以我想我必须做一个新的?@TejaNandamuri。我还用一些附加信息更新了问题。我尝试了这个,现在它给了我
线程1:致命错误:在IBAction中隐式展开可选值时意外发现了nil。我用一些附加信息更新了我的问题@Jeffe雷Thomas@JanSwoboda视图是如何设置的?如何在视图中显示诸如
textName
numberOfComments
之类的内容?好吧,但这会破坏我的代码的目的,即获取每个帖子的唯一postID,以检查用户是否喜欢@user3345698Ok。明白..然后仅在y时调用likeIt函数您在该变量中有值。发生此错误的原因是使用空值调用该变量。或者将函数更改为完全接受可选值。然后在该函数内进行所需的检查