繁体   English   中英

Swift:在另一个swift文件中更改变量? 没变?

[英]Swift: change a variable in an other swift-file? No change?

我在2个不同的Swift文件(UIViewController)中有2个类。

在第一类中,我声明了一个var:

class HomeScreen: UIViewController {

var Score = 0
let blackColor = UIColor.blackColor()

@IBOutlet weak var ScoreLabel: UILabel!

override func viewDidLoad() {
    super.viewDidLoad()
ScoreLabel.text = "Score: \(Score)"

}}

在第二个类/文件中,我想增加此变量:

class SecondVC: UIViewController {

@IBAction func ButtonPressed(sender: AnyObject) {

    HomeScreen().Score++
}}

如您所见,我想在标签中显示Score-var。 但是那里总是停留在“ 0”

怎么了?!

谢谢!!!

您的代码HomeScreen().Score++正在创建一个新实例,并增加该新实例的score变量,然后该实例被丢弃。

您需要参考所使用的​​实际HomeScreen实例。 我建议在View Controller之间传递数据作为几种实现方法的参考。

这个:

@IBAction func ButtonPressed(sender: AnyObject) {

    HomeScreen().Score++
}

您正在创建HomeScreen新实例 ,将其值递增,然后在方法结束时超出范围,因此所有更改都将丢失。

您应该改为在已初始化的对象上更改值,例如:

@IBAction func ButtonPressed(sender: AnyObject) {

    // homeScreen is a reference to an already existing local variable
    homeScreen.Score++

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM