2017-05-27 80 views
1

比方說,我有一個變量集我LevelOne.Swift:得到變量從另一個類SpriteKit

var isLevelCompleted = false 

我也有我的LevelOne.Swift的功能。當它被稱爲它將值更改爲真:

func levelOneComplete(){ 
     isLevelCompleted = true 

    } 

我想從不同的Swift類訪問此變量。我怎麼能這樣做呢?我嘗試了幾種不同的方法,但我似乎無法讓它識別變量。

+0

如何讓LevelOne類成爲單例? – Raymond

+0

你有沒有嘗試過讓它通用?我的意思是把它放在skscene之外。例如Import SpriteKit Var isLevelCompleted – sicvayne

+0

如果這兩個類位於兩個不同的swift文件中,該怎麼辦?那可能嗎? –

回答

0

最簡單的方法是將變量設置爲全局變量,所以它不在任何類中。這可能並不總是最安全的方式,但它大部分時間都有效,而且非常容易。在下面的示例中,我有兩個類,它們可以是setgetisLevelCompleted變量。 (這些類顯然不一定是UIViewController)。

var isLevelCompleted: Bool! 

class LevelOne : UIViewController { 
override func viewDidLoad() { 
     super.viewDidLoad() //Just an example 
     isLevelCompleted = true 

    } 
} 
class LevelTwo : UIViewController { 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     print(isLevelCompleted) // prints "true" 
    } 
} 
+0

如果兩個類在兩個不同的swift文件中會怎樣。那可能嗎? –

+0

是的,根本沒關係。 (這只是表示,對電腦來說沒有什麼區別) – Eric