我在快速返回布尔值时遇到问题。最初,我创建了一个函数(状态分配),将该值传递给另一个构造函数(isLoggedIn)。现在,此构造函数从statusAssign函数返回门控值。所以,我该怎么做?我的编码在下面,但似乎出错。

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")
    }
}

最佳答案

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

关于ios - swift 2.0中如何在其他条件下返回 bool 值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38538156/

10-12 19:51