fatal error: unexpectedly found nil while unwrapping an Optional value swift

fatal error: unexpectedly found nil while unwrapping an Optional value swift

好的,所以我正在尝试 运行 此代码,但我不断收到此错误:致命错误:在展开可选值时意外发现 nil。我不明白这意味着什么或为什么我得到它。有人可以帮帮我吗。谢谢

query.whereKey("accepted", equalTo: PFUser.currentUser().username)
query.whereKey("username", containedIn: PFUser.currentUser()["accepted"] as [AnyObject])

根据 objective-c PFUser.currentUser() 的文档,我假设它转换为 Swift 可选,它很容易 return 为零。所以你需要做类似的事情:

if let currentUser = PFUser.currentUser() {
    query.whereKey("accepted", equalTo: currentUser.username)
    if let someArrayObject = currentUser["accepted"] as? [AnyObject] {
        query.whereKey("username", containedIn: someArrayObject)
    }
} else {
    // currentUser does not exist, do error handling
}

不确定第二行 query 是什么,someArrayObject 是什么,所以您可能会进一步研究。但是您的错误要么与您取消引用可能为 nil 的 currentUser() 相关,要么与在第二行 query 中使用 as 而不是 as? 有关。

解决方案是对潜在的可选值进行适当的解包。

你所要做的就是:

if let currentUser = PFUser.currentUser() {
    query.whereKey("accepted", equalTo: currentUser.username)
    if let someArrayObject = currentUser["accepted"] as? [AnyObject] {
        query.whereKey("username", containedIn: someArrayObject)
    }
} else {
    // currentUser does not exist, do error handling
}