gpt4 book ai didi

ios - swift: fatal error :在展开可选值 (lldb) 时意外发现 nil,线程 1

转载 作者:行者123 更新时间:2023-11-28 09:06:12 25 4
gpt4 key购买 nike

我在运行模拟器时一直收到这个 fatal error ,我不知道如何解决。我正在使用 Parse 创建一个模拟 Instagram 项目,由于某种原因,我收到一个 fatal error 和一个线程 1:

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

我知道这是一个常见问题,因为我查看了许多包含此 fatal error 的问题。但是,我对 Swift 编程还很陌生,所以我很困惑,如果有人能帮助我,我将不胜感激,谢谢!

import UIKit
import Parse

class TableViewController: UITableViewController {

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

override func viewDidLoad() {
super.viewDidLoad()

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()

}


})



}
}

}



}



})


}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

// MARK: - Table view data source

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// #warning Potentially incomplete method implementation.
// Return the number of sections.
return 1
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete method implementation.
// Return the number of rows in the section.
return usernames.count
}


override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! UITableViewCell

cell.textLabel?.text = usernames[indexPath.row]

let followedObjectId = userids[indexPath.row]

if isFollowing[followedObjectId] == true {

cell.accessoryType = UITableViewCellAccessoryType.Checkmark

}


return cell
}


override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

var cell:UITableViewCell = tableView.cellForRowAtIndexPath(indexPath)!

let followedObjectId = userids[indexPath.row]

if isFollowing[followedObjectId] == false {

isFollowing[followedObjectId] = true

cell.accessoryType = UITableViewCellAccessoryType.Checkmark

var following = PFObject(className: "followers")
following["following"] = userids[indexPath.row]
following["follower"] = PFUser.currentUser()?.objectId

following.saveInBackground()

} else {

isFollowing[followedObjectId] = false

cell.accessoryType = UITableViewCellAccessoryType.None

var query = PFQuery(className: "followers")

query.whereKey("follower", equalTo: PFUser.currentUser()!.objectId!)
query.whereKey("following", equalTo: userids[indexPath.row])

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

if let objects = objects {

for object in objects {

object.deleteInBackground()

}
}


})



}

}
}

最佳答案

您可能没有以任何用户身份登录,因此 PFUser.currentUser() 返回 nil 并且当您强制解包时它会产生错误,因为您无法解包 nil 值.

首先检查是否有用户登录使用:

if let user = PFUser.currentUser(){
println("User logged, lets do this")
var query = PFQuery(className: "followers")
query.whereKey("follower", equalTo: PFUser.currentUser()!.objectId!)
query.whereKey("following", equalTo: userids[indexPath.row])
query.findObjectsInBackgroundWithBlock({ (objects, error) -> Void in
if let objects = objects {
for object in objects {
object.deleteInBackground()
}
}
})
} else {
println("No user logged, ops!")
}

关于ios - swift: fatal error :在展开可选值 (lldb) 时意外发现 nil,线程 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30678934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com