我是 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/