2017-05-27 83 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