我有两个文件正在为我的SpriteKit游戏工作:SPSwipes.swift和GameScene.swift。
在我的 SPSwipes.swift 文件中,在SPSwipes类中,变量由IBAction 触发。
class SPSwipes: UIViewController {
@IBAction func fiveSwipes(sender: AnyObject) {
var no_of_swipes = 5
}
}
在我的 GameScene.swift文件中,if语句检查值已分配给我的变量,并创建一个数组:
if no_of_swipes == 5 {
var array = Array<UInt32>(count: 5, repeatedValue: 0)
for i in 0 ..< 5 {
array[i] = arc4random_uniform(100)}
}
我收到错误消息:
为了“修复”这个问题,我意识到我需要创建一个SPSwipes类的实例,所以我把它添加到我的 GameScene.swift 文件中:< / p>
var swipes = SPSwipes()
然后我改变了if语句来说:
if swipes.no_of_swipes == 5{
...
}
然后我收到了错误:
据我所知,我已正确创建了该类的实例,但显然存在问题。
答案 0 :(得分:0)
您的错误在这里:
@IBAction func fiveSwipes(sender: AnyObject) {
var no_of_swipes = 5
}
您在函数内部创建了一个变量,因此变量不存在于函数外部。
你想要的是只要一个类的对象存在就让变量生效,因此你需要创建一个更高级别的变量:
class SPSwipes: UIViewController {
var numberOfSwipes = 0
@IBAction func fiveSwipes(sender: AnyObject) {
numberOfSwipes = 5
}
}