Swift 从另一个类SpriteKit获取变量

Swift 从另一个类SpriteKit获取变量,swift,Swift,假设我在LevelOne中设置了一个变量。斯威夫特: var isLevelCompleted = false 我的LevelOne.Swift中也有一个函数。调用时,它会将值更改为true: func levelOneComplete(){ isLevelCompleted = true } 我想从不同的swift类访问此变量。我该怎么做呢?我尝试了几种不同的方法,但似乎无法让它识别变量 最简单的方法是将变量设置为全局变量,因此它根本不在任何类中。这可能并不总是最

假设我在LevelOne中设置了一个变量。斯威夫特:

var isLevelCompleted = false
我的LevelOne.Swift中也有一个函数。调用时,它会将值更改为true:

func levelOneComplete(){
        isLevelCompleted = true

    }

我想从不同的swift类访问此变量。我该怎么做呢?我尝试了几种不同的方法,但似乎无法让它识别变量

最简单的方法是将变量设置为全局变量,因此它根本不在任何类中。这可能并不总是最安全的方法,但它在大多数情况下确实有效,而且非常简单。在下面的示例中,我有两个类,它们可以
设置
获取
isLevelCompleted
变量。(这些类显然不必是UIViewController)


最简单的方法是使变量成为全局变量,因此它根本不在任何类中。这可能并不总是最安全的方法,但它在大多数情况下确实有效,而且非常简单。在下面的示例中,我有两个类,它们可以
设置
获取
isLevelCompleted
变量。(这些类显然不必是UIViewController)


让LevelOne类成为一个单人项目怎么样?你试过让它成为通用的吗?我的意思是把它放在外面。例如,Import SpriteKit Var islevelcompleted如果这两个类位于两个不同的swift文件中会发生什么。这有可能吗?让LevelOne类成为一个单件怎么样?你试过让它成为通用的吗?我的意思是把它放在外面。例如,Import SpriteKit Var islevelcompleted如果这两个类位于两个不同的swift文件中会发生什么。可能吗?如果这两个类在两个不同的swift文件中呢。有可能吗?是的,那根本不重要。(这只是表示,对计算机来说没有区别)如果这两个类在两个不同的swift文件中呢。有可能吗?是的,那根本不重要。(这只是表示,对计算机来说没有区别)
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"
   }
}