2017-05-27 10 views
1

から変数を取得します。それが呼び出されたときには、値をtrueに変更します。私は別の迅速クラスからこの変数にアクセスしたいだが、私は私のLevelOne.Swiftで変数セットがあるとしましょう、別のクラスのSpriteKitベース

func levelOneComplete(){ 
     isLevelCompleted = true 

    } 

。これをやり遂げるにはどうすればいいですか?私はいくつかの異なる方法を試しましたが、変数を認識することができません。

+0

LevelOneクラスをシングルトンにする方法はありますか? – Raymond

+0

普遍化しようとしましたか?これは私が外に出すことを意味します。たとえば、Import SpriteKit Var isLevelCompleted – sicvayne

+0

2つのクラスが2つの異なる高速ファイルにある場合はどうなりますか?それは可能ですか? –

答えて

0

これを行う最も簡単な方法は、変数をグローバルにすることです。そのため、クラス内にはまったく入っていません。これはいつも最も安全な方法ではないかもしれませんが、ほとんどの時間は機能し、とても簡単です。下の例では、私はsetgetの両方の変数を持つことができる2つのクラスを持っています。isLevelCompleted (クラスは明らかに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

2つのクラスが2つの異なる高速ファイルにある場合はどうなりますか?それは可能ですか? –

+0

はい、それは全く問題ではありません。 (これは表現に過ぎない、コンピュータには違いはない) – Eric

関連する問題