我正在处理三个文件:Menu.swift
,Main.swift
和Game.swift
。
在我的 Main.swift 中,我定义了变量 swipeNumber
:
class Main {
var swipeNumber: Int = 0 {
didSet{
println("The new swipe number is \(swipeNumber)")
}
}
}
N.B。它是在类中,因此我可以引用其他文件中的变量,并且 didSet属性观察器将起作用。 < / p>
如您所见,其初始值(我认为)为0
。
然后,在我的 Menu.swift 中,我从 Main.swift 主类中检索信息 >
let main = Main()
然后我有三个按钮,触摸,更改swipeNumber
变量,根据哪个按钮是按压。
class Menu: UIViewController {
@IBAction func pressedThreeSwipes(sender: AnyObject) {
main.swipeNumber = 3
}
@IBAction func pressedFiveSwipes(sender: AnyObject) {
main.swipeNumber = 5
}
@IBAction func pressedTenSwipes(sender: AnyObject) {
main.swipeNumber = 10
}
//...
}
当我运行该程序时,我的属性观察者似乎工作,打印消息,例如:
The new swipe number is 3
The new swipe number is 5
The new swipe number is 10
游戏类中的 ,(用于排查目的),我有另一个属性观察者,检查变量swipeNumber
的整数< / strong>按下按钮test
时:
class Game: UIView {
let main = Main()
func didMoveToView(view: UIView) {
/* Setup your scene here */
println("now")
println("\(main.swipeNumber)"
//Nothing happens here, suggesting that didMoveToView is failing
}
@IBAction func test(sender: AnyObject) {
println("\(main.swipeNumber)")
}
}
我的func test
会打印一个数字,但遗憾的是,该数字不是3,5或10 。 这是0
。
我认为问题在于 Main.swift 中的变量,但我不确定。
任何建议或“修正”,无论是快速还是冗长,都将非常感激。
谢谢,
威尔