如何将else if条件中的布尔值返回到swift 2.0中的函数?

时间:2016-07-23 04:27:42

标签: ios swift

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

1 个答案:

答案 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()