我在swift中返回一个布尔值时遇到问题。最初我创建了一个函数(statusAssign),它将值传递给另一个构造函数(isLoggedIn)。现在,此构造函数从statusAssign函数返回gated值。那么,我该怎么做?我的编码在下面,但似乎有误。
func statusAssign()
{
let state = "1"
isLoggedIn(state)
}
internal func isLoggedIn(status:String) -> Bool
{
var gc:Bool
if status == "1"
{
gc = true
}
else
{
gc = false
}
return gc //Error 1: return is Nil while wrapping an optional value
}
func usage()
{
if isLoggedIn() == true //Error2: Missing Argument for Parameter #1 in call
{
print("Buddy is true")
}
else
{
print("Buddy is false")
}
}
答案 0 :(得分:1)
错误1:
var gc:Bool //This is NOT declared, you just THINK it is
var gc:Bool = false //correct way, also makes it where you DON'T need the else i.e. less code.
if status == "1"
{
gc = true
}
错误2:
您将函数isLoggedIn(status:String)
声明为带参数的函数。所以当你致电isLoggedIn(status:String)
时,它需要输入。没有参数,您无法if isLoggedIn()
。
如果我是正确的,我认为有一个更容易的方法来做到这一点。如果这对您有用,请告诉我。
var isLoggedIn:Bool = false
func logIn() {
isLoggedIn = true
}
func usage() {
if(isLoggedIn) {
print("Buddy is true")
}
else
{
print("Buddy is false")
}
}
应用:
logIn()
usage()