swift - Swift 中的单例无法从另一个类访问

标签 swift singleton

我是 Swift 新手,正在尝试从另一个类访问在游戏过程中附加到我的主 GameController 类中的“problemSolved”数组。由于某种原因,该数组在 UIViewController 类中不可见,我想在其中显示表中解决的所有问题。我已经阅读了网站上的许多单例示例,看看这是否可以做到这一点,但似乎不行。非常感谢这里的任何帮助或建议!

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

}

最佳答案

此刻我只能想象你不打电话

GameController.sharedInstance.onProblemSolved()

当您想要将字符串附加到problemsSolved时。

您还应该考虑将 GameController 中的函数和变量设为静态。

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

关于swift - Swift 中的单例无法从另一个类访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30947784/

相关文章:

ios - Swift - 从也是 UIViewController 的通用基类继承 UIViewController

ios - 如何创建单例并跳过sharedInstance静态属性语法部分

spring - 向 Spring 询问 Singleton Bean 的 Prototype 实例?

ios - Swift,为特定的 CGPoint 设置动画

ios - Swift Enum design issues : 1. multiple cases having same value, 2.返回自定义枚举值

ios - 如何在 Swift 中将文本字体设置为 System Thin?

ios - 修改过多字节的数据对象会导致 swift 应用程序崩溃

python - 如何确定变量是否在 Python 中声明?

c# - 用于公开从 xml 读取的数据的单例与静态类

ios - 如何在单例方法中实现 AVAudioPlayer?