1. ホーム
  2. swift

[解決済み] グローバル変数を作成するには?

2022-05-11 07:31:51

質問

ViewController間で共有する必要があるグローバル変数があります。

Objective-Cでは、静的変数を定義することができますが、Swiftでグローバル変数を定義する方法を見つけることができません。

何か方法をご存知でしょうか?

どのように解決するのですか?

Swiftの公式プログラミングより 案内 :

<ブロッククオート

グローバル変数とは、どのような 関数、メソッド、クロージャ、または型コンテキストの外側で定義される変数です。グローバル定数および は常に遅延計算されます。

任意のファイルで定義することができ、アクセスは現在の module のどこからでもアクセスできます。 つまり、どのスコープでもなく、ファイルのどこかで定義することができるのです。そのため static は不要で、すべてのグローバル変数が遅延的に計算されます。

 var yourVariable = "someString"

現在のモジュールのどこからでもアクセスできます。

しかし、グローバル変数はアプリケーションの状態を表すのに適しておらず、主にバグの原因となるため、これを避ける必要があります。

このように 回答 でカプセル化することができます。 struct でカプセル化し、どこにでもアクセスすることができます。 また、Swiftでは静的変数や定数を定義することができます。カプセル化する struct

struct MyVariables {
    static var yourVariable = "someString"
}

この変数は、任意のクラスや任意の場所で使用することができます。

let string = MyVariables.yourVariable
println("Global variable:\(string)")

//Changing value of it
MyVariables.yourVariable = "anotherString"