簡體   English   中英

為什么會出現以下錯誤:“致命錯誤:在展開可選值時意外發現nil”? -以及如何具體修復?

[英]Why do I get the following error: “fatal error: unexpectedly found nil while unwrapping an Optional value”? - and how can I fix it specifically?

這是我的代碼:

var usernames = [""]
var userids = [""]
var isFollowing = ["":false]

var refresher: UIRefreshControl!

func refresh() {

    var query = PFUser.query()

    query?.findObjectsInBackgroundWithBlock({ (objects, error) -> Void in

        if let users = objects {

            self.usernames.removeAll(keepCapacity: true)
            self.userids.removeAll(keepCapacity: true)
            self.isFollowing.removeAll(keepCapacity: true)

            for object in users {

                if let user = object as? PFUser {

                    if user.objectId != PFUser.currentUser()!.objectId {

                        self.usernames.append(user.username!)
                        self.userids.append(user.objectId!)

                        var query = PFQuery(className: "followers")

                        query.whereKey("follower", equalTo: PFUser.currentUser()!.objectId!)
                        query.whereKey("following", equalTo: user.objectId!)

                        query.findObjectsInBackgroundWithBlock({ (objects, error) -> Void in

                            if let objects = objects {

                                if objects.count > 0 {

                                    self.isFollowing[user.objectId!] = true

                                } else {

                                    self.isFollowing[user.objectId!] = false

                                }
                            }

                            if self.isFollowing.count == self.usernames.count {

                                self.tableView.reloadData()

                                self.refresher.endRefreshing()

                            }

                        })


                    }

                }

            }

        }





    })

我在這行上收到致命錯誤,它說:

query.whereKey(“ follower”,equalTo:PFUser.currentUser()!. objectId!)query.whereKey(“ following”,equalTo:user.objectId!)

我怎樣才能解決這個問題? 我搜索了其他幾篇文章,卻找不到有用的東西。 當您提供建議時,請非常具體-我是新手。

正如評論中所說,您的價值觀之一是零。

在查詢之前插入以下代碼,並修復返回nil的方法:

if (PFUser.currentUser() == nil) {
    print("currentUser() is nil");
} else if (PFUser.currentUser()!.objectId == nil) {
    print("PFUser.currentUser()!.objectId is nil");
} else if (user.objectId == nil) {
    print("user.objectId is nil");
}

解析登錄肯定存在問題。在程序查詢期間是否要調用登錄功能? 並且您正在檢查結果變量嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM