2015-06-19 30 views
0

我是Swift的新手,我試圖訪問一個'problemSolved'數組,該數組在另一個類的主GameController類的遊戲中添加。出於某種原因,數組在UIViewController類中不可見,我想在其中顯示錶中解決的所有問題。我已經閱讀了網站上的許多Singleton示例,看看這是否會實現,但似乎並不如此。任何幫助或建議,在這裏非常感謝!swift中的單例不能從另一個類訪問

class GameController: TileDragDelegateProtocol, CenterViewControllerDelegate { 
    static let sharedInstance = GameController() 
    var problemsSolved = Array<String>() 

    func onProblemSolved() { 
    problemsSolved.append(problem) 
    println("problemsSolved contains \(problemsSolved)") 
} 
} 

在遊戲過程中,我可以在控制檯中看到數組在GameController中正在追加確定。但是當我嘗試在ViewController類中訪問它時,內容顯示爲空[]。

class SidePanelViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { 

@IBOutlet weak var tableView: UITableView! 

override func viewDidLoad() { 
tableView.reloadData() 
println("the array viewed from here is empty \(GameController.sharedInstance.problemsSolved)") 

} 
+2

變量「問題」來自哪個附加數組? – Qbyte

+0

嗨Qbyte,遊戲是一個單詞匹配遊戲。在GameController中有一個func dealWord(),它從Level類中的'words'數組中抽取一個單詞。 (我似乎可以從GameController中訪問,但不是GameController,因此這個問題!)。一旦函數dealWord()完成func onProblemSolved,它將檢查問題是否用if語句解決,如果是,則將該單詞添加到problemSolved數組中。思考? – richc

回答

0

此刻,我只能想象,你不叫

GameController.sharedInstance.onProblemSolved() 

當你想爲一個字符串追加到problemsSolved

您還應該考慮將GameController中的函數和變量設爲靜態。

如果這不能解決您的問題,我需要更多關於如何以及何時向problemsSolved添加內容的信息。

+0

輝煌Qbyte,這確實是我的錯誤。非常感謝! – richc

+0

不客氣!你能將答案標記爲「正確」嗎?所以其他人可以看到你的問題解決了。 – Qbyte

相關問題