2014-11-02 103 views
2

我有兩個文件,我正在爲我的SpriteKit遊戲工作:SPSwipes.swift和GameScene.swift。Swift:從類的實例獲取類型

在我SPSwipes.swift文件,SPSwipes類中,一個變量通過IBAction爲觸發。

class SPSwipes: UIViewController { 

@IBAction func fiveSwipes(sender: AnyObject) { 
    var no_of_swipes = 5 
    } 
} 

在我GameScene.swift文件,如果一個什麼值已分配給我的變量,並創建其陣列語句檢查:

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文件:

var swipes = SPSwipes() 

然後我改變if語句說:

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

然後我收到此錯誤

enter image description here

據我所知,我已經正確創建類的實例,但有明顯的問題。

回答

1

你的錯誤是在這裏:

@IBAction func fiveSwipes(sender: AnyObject) { 
    var no_of_swipes = 5 
} 

您已經創建了函數內部的變量,因此該變量不功能之外存在。

你需要的是有變活了,只要類生活的對象,因此,你需要創建一個可變的水平高:

class SPSwipes: UIViewController { 

var numberOfSwipes = 0 

@IBAction func fiveSwipes(sender: AnyObject) { 
    numberOfSwipes = 5 
    } 
} 
+0

謝謝。有一件事,在函數內部執行'var numberOfSwipes = 5'是否安全,還是應該省略'var'? – will 2014-11-02 15:49:43

+2

如果將var放入函數中,您將創建一個將優先於成員變量使用的局部變量。 – 2014-11-02 16:44:35