新的xcode更新后数组不会改变 - swift

时间:2016-03-23 11:08:42

标签: arrays xcode swift

我有一个名为currentYear的变量,默认情况下设置为2000。 currentYear是我的字符串数组中的变量,因此字符串知道它是哪一年。这是一个没有类的文件。这些值可全局访问。

import UIKit

var currentYear = 2000

var array = [
"The year you pressed is \(currentYear)",

]

在ViewController中,我的按钮的标签等于它包含的年份:2013,2014,2015和2016.按下按钮后,它会转到另一个ViewController。

import UIKit

class ViewController: UIViewController {

    @IBAction chooseYearBtnPressed(sender: AnyObject) { 

        currentYear = sender.tag 

        print(array)   

        performSegueWithIdentifier("CustomSegue", sender: nil)

    }


}

在最近的xcode更新之前,这个工作得很好。无论何时按下按钮,加载的数组都具有与新值相同的currentYear。现在它没有。在为currentYear分配一个新值后,数组中的currentYear仍为2000。

我该如何解决这个问题呢,那么currentYear会根据我作为新值传递的内容而改变吗?

解决方案:

var array: [String] { 
    return ["The Year you pressed is \(currentYear)"] 
}

2 个答案:

答案 0 :(得分:1)

我看不出你的代码是如何做你想做的。首次创建视图控制器实例时,为array赋值的代码会触发,而不是再次触发。 (我假设您对currentYeararray的定义在视图控制器中,因此它们是视图控制器的属性。)

如果您想在每次更改currentYear的值时更新array,您应该向currentYear添加didSet函数。像这样:

import UIKit

var array: [String]
var currentYear
{
  didSet 
  {
    array = 
    [
      "The year you pressed is \(currentYear)",
    ]
  }
}
currentYear = 2000

答案 1 :(得分:1)

在为它分配标签值之前尝试清除当前变量和数组,becoz在我看来它覆盖了某处..我不确定但是只是试一试..: - )