2014-11-21 26 views
1

我在這裏有一段代碼,我似乎無法弄清楚爲什麼它不起作用。在Swift中將Bool從一個類返回到另一個

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] 
    } 
} 

我沒有得到任何errormessages當我建立,但是它挑出這條線:

func returnFriend() -> Bool{ 

回答

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] 
    } 
} 
+0

謝謝! :)工作! – Heinevolder 2014-11-21 22:01:00

1

它看起來像你每次檢查布爾時間實例化一個新的視圖控制器( ViewControllerFirst()似乎應該至少fview,我不認爲fview是你想要的實際的ViewController),所以在我看來,它永遠是錯誤的。

相關問題