ViewController間で共有する必要があるグローバル変数があります。
Objective-Cでは、静的変数を定義できますが、Swiftでグローバル変数を定義する方法が見つかりません。
その方法を知っていますか?
Swiftプログラミングから ガイド
グローバル変数は、関数、メソッド、クロージャ、または型コンテキストの外側で定義されている変数です。グローバル定数と変数は常に遅延計算されます
あなたはそれをどんなファイルでも定義することができて、どこでも現在のmodule
でそれにアクセスすることができます。それで、あなたはそれをどんな範囲の外側でもファイルのどこかで定義することができます。 static
は不要で、すべてのグローバル変数は遅延計算されます。
var yourVariable = "someString"
現在のモジュールのどこからでもアクセスできます。
ただし、グローバル変数はアプリケーションの状態や主にバグの原因には適していないため、これを避ける必要があります。
これに示すように answer Swiftではそれらをstruct
でカプセル化することができ、どこからでもアクセスできます。 Swiftでも静的変数または定数を定義できます。 struct
でカプセル化する
struct MyVariables {
static var yourVariable = "someString"
}
この変数はどのクラスでもどこでも使用できます。
let string = MyVariables.yourVariable
println("Global variable:\(string)")
//Changing value of it
MyVariables.yourVariable = "anotherString"
メソッドやクロージャの外部で定義されているグローバル変数は、privateキーワードを使用してスコープを制限できます。
import UIKit
// MARK: Local Constants
private let changeSegueId = "MasterToChange"
private let bookSegueId = "MasterToBook"
あなたがあなたのクラスのすべてでそれを使いたいならば、あなたは使うことができます:
public var yourVariable = "something"
1つのクラスでだけ使用したい場合は、次のものを使用できます。
var yourVariable = "something"