我有一个名为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仍然是2000。
我怎样才能解决这个问题,所以currentyear仍然会根据我传递的新值进行更改?
解决方案:
var array: [String] {
return ["The Year you pressed is \(currentYear)"]
}
最佳答案
我看不出你的代码是怎么做到你想做的事情的。第一次创建视图控制器实例时,为array
赋值的代码会触发一次,而不是再次触发。(我假设currentYear
和array
的定义在视图控制器中,因此它们是视图控制器的属性。)
如果要在currentYear的值每次更改时更新array
,则应向currentYear添加一个didset函数。像这样的:
import UIKit
var array: [String]
var currentYear
{
didSet
{
array =
[
"The year you pressed is \(currentYear)",
]
}
}
currentYear = 2000
关于arrays - 自从新的xcode更新以来数组未更改-swift,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36176489/