gpt4 book ai didi

ios - Swift - 解析 - 检查用户名是否被占用

转载 作者:搜寻专家 更新时间:2023-11-01 06:22:23 24 4
gpt4 key购买 nike

我正在尝试创建一个将用户名作为参数的函数,并检查是否使用了该用户名(通过将其与 Parse 数据库中的其他 PFUser 进行比较。此函数在我的 View Controller 类中。(我知道有与此类似的问题,但它们没有提供高质量的答案,而且比这个更笼统,或者不在 Swift 中。

func usernameIsTaken(username: String) -> Bool {

//bool to see if username is taken
var isTaken: Bool = false

//access PFUsers
var query : PFQuery = PFUser.query()!
query.whereKey("User", equalTo: username)

query.findObjectsInBackgroundWithBlock {
(objects: [AnyObject]?, error: NSError?) in

if error == nil {
if (objects!.count > 0){
isTaken = true
println("username is taken")
} else {
println("Username is available. ")
}
} else {
println("error")
}
}

return isTaken

}

问题在于 if 语句中的条件始终为 false,因此“用户名可用”始终在控制台中打印,即使用户名已被占用。“用户名已被占用”即使用户名已被占用也永远不会打印出来。我应该在嵌套的 if 语句中放入什么来检查用户名是否与另一个 PFUser 匹配?

最佳答案

您正在查询User(类)键,但您需要查询特定键,例如email

// First get user's inputted email
let enteredEmailAddress = "sample@gmail.com"

// Then query and compare
var query = PFQuery(className: "_User")
query.whereKey("email", equalTo: enteredEmailAddress)
query.findObjectsInBackgroundWithBlock {
(objects: [AnyObject]?, error: NSError?) in
if error == nil {
if (objects!.count > 0){
isTaken = true
println("username is taken")
} else {
println("Username is available. ")
}
} else {
println("error")
}
}

关于ios - Swift - 解析 - 检查用户名是否被占用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31688945/

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