【发布时间】:2020-10-11 02:35:49
【问题描述】:
我正在尝试让用户选择他们的用户名;如果在注册期间尚未使用,他们可以继续,否则他们无法注册。
我有以下几点:
Button(action: {
if (self.verifyUsername(username: self.username)) {
withAnimation {
self.isTaC.toggle()
}
}) {
Text("Save Profile and Agree")
}
调用如下:
func verifyUsername(username: String) -> Bool {
userStore.usernameExists(username: username) { flag in
if (flag) {
return true
} else {
return false
}
}
}
最后是从 Firebase 获取信息的用户存储:
func usernameExists(username: String, completion: @escaping (Bool) -> Void) {
usernameRef.child(username).observeSingleEvent(of: .value, with: { (snapshot) in
if (snapshot.exists()) {
print("Username Exists")
completion(true)
} else {
print("Username DOESN'T Exists")
completion(false)
}
})
}
我的代码的userStore.usernameExists(username: username) { flag in 部分出现编译器错误>,我不明白这是为什么?
谁能帮我解决这个问题?
【问题讨论】:
-
verifyUsername应该返回Bool,但它没有。它只调用userStore.usernameExists,因为它是唯一的语句,所以有一个隐含的return,无论userStore.usernameExists的返回值是什么,它是……Void或()