gpt4 book ai didi

ios - 如何在 Swift 中同步检索 PFUser objectForKey

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

我正在尝试同步检索 PFUser 对象信息。但是,我已经尝试使用 fetch,但我不断遇到实现错误。我想找到例如:PFUser.currentUser()?.objectForKey("scoreNumber"),但我没有得到更新的值。我被告知我可以使用 fetch 找到它,但我无法在我的 fetch 函数中实现 objectForKey。

一些尝试

var score: String!
func retrieveScore(){
guard let myUser = PFUser.currentUser() else { return }
do{ let data = try myUser.objectForKey("scoreNumber")?.fetch()
try scoreNumber = data! as! String
}catch{}
}

另一个

let userScore = PFUser.currentUser()?.objectForKey("scoreNumber")
let userScore2 = userScore.fetch()

最佳答案

您不应该为 NSUserDefaults 保存用户。 Parse SDK 可以很好地为您管理 session 。只需要一个调用 [PFUser logout]` 函数的特定注销按钮。

所以,fetch是一个异步操作。这意味着它在一个单独的线程上运行,然后主线程将继续执行下一个命令。因此,您正在调用 fetch,它在后台获取一个对象,但随后您正试图从尚未获取的对象中访问一个值。您需要从处理提取调用结果的 block 中访问该对象。

当您按照您的方式调用 fetch 时,仅使用 .fetch(),它会在后台运行,但不会在您有数据时提醒您,也不会在 fetch 失败时提醒您。这不是获取您立即需要的数据的好方法。

你需要使用fetchInBackgroundWithBlock()

scoreNumber.fetchInBackgroundWithBlock() {
(scoreNumber: PFObject?, error: NSError?) -> Void in
if error == nil && scoreNumber != nil {
print(scoreNumber)
} else {
print(error)
}
}

关于ios - 如何在 Swift 中同步检索 PFUser objectForKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43927483/

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