Swift:从类的实例中获取类型

时间:2014-11-02 15:21:55

标签: ios class variables swift instance

我有两个文件正在为我的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)}
        }

我收到错误消息

enter image description here

为了“修复”这个问题,我意识到我需要创建一个SPSwipes类的实例,所以我把它添加到我的 GameScene.swift 文件中:< / p>

var swipes = SPSwipes()

然后我改变了if语句来说:

if swipes.no_of_swipes == 5{
...
}

然后我收到了错误

enter image description here

据我所知,我已正确创建了该类的实例,但显然存在问题。

1 个答案:

答案 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
    }
}