无法从另一个类访问swift中的Singleton

时间:2015-06-19 21:49:40

标签: swift singleton

我是Swift的新手,我正在尝试访问一个'problemSolved'数组,该数组在我的主GameController类游戏过程中附加,来自另一个类。由于某种原因,该数组在UIViewController类中不可见,我希望在该类中显示表中解决的所有问题。我已经阅读了网站上的许多Singleton示例,看看是否会这样做,但似乎并没有。任何帮助或建议都非常感谢!

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

}

1 个答案:

答案 0 :(得分:0)

目前我只能想象你不打电话

GameController.sharedInstance.onProblemSolved()

如果要将字符串附加到problemsSolved

您还应该考虑在GameController静态中创建函数和变量。

如果这不能解决您的问题,我需要更多关于如何以及何时向problemsSolved添加内容的信息。