在Swift中将Bool从一个类返回到另一个类

时间:2014-11-21 21:37:50

标签: ios arrays xcode model-view-controller swift

我这里有一段代码,我似乎无法弄清楚它为什么不起作用。

viewController应该检查开关是打开还是关闭。

class ViewControllerFirst: UIViewController {  


@IBAction func friendFunc(){
    if friendSwitch.on{
        friendOn = true
    }   else    {
        friendOn = false
    }
}

func returnFriend() -> Bool{
    return friendOn
    }
}

如果开关打开,则应将一个数组添加到tempArray。

import Foundation

struct DareBook {

let fview = ViewControllerFirst()
let dareArrayFriend = [""]

func randomDare() -> String{

    var tempArray = [""]
    if  ViewControllerFirst().returnFriend() == true{
        tempArray += dareArrayFriend
    }  
    var unsignedArrayCount = UInt32(tempArray.count)
    var unsignedRandomNumber = arc4random_uniform(unsignedArrayCount)
    var randomNumber = Int(unsignedRandomNumber)
    return tempArray[randomNumber]
    }
} 

我在构建时没有收到任何错误消息,但它单挑这一行:

    func returnFriend() -> Bool{

2 个答案:

答案 0 :(得分:1)

看起来每次检查布尔值时都会实例化一个新的视图控制器,(ViewControllerFirst()似乎至少应该是fview并且我不认为fview是

表示你想要的实际ViewController,所以在我看来它总是错误的。

答案 1 :(得分:1)

调用该函数时,您正在创建一个新的视图控制器。这可能不是你想要的。

func randomDare() -> String{

    var tempArray = [""]
    // if  ViewControllerFirst().returnFriend() == true{ <--- this line can't be right
    if  fview.returnFriend() == true{
        tempArray += dareArrayFriend
    }  
    var unsignedArrayCount = UInt32(tempArray.count)
    var unsignedRandomNumber = arc4random_uniform(unsignedArrayCount)
    var randomNumber = Int(unsignedRandomNumber)
    return tempArray[randomNumber]
    }
}