static変数がObjective-cクラスのメソッドの ように宣言されている理由がわかりませんか?
static変数 のスコープは何ですか?
static変数がObjective-cクラスのメソッドの ように宣言されている理由がわかりませんか?
static変数 のスコープは何ですか?
static変数は、スタックフレームがスタックからポップされても破壊されません(通常の変数は破壊されます。そうしないと、壮大なメモリリークが発生します)。ローカルでのみアクセスできるグローバル変数としてそれらを参照してください。プログラム全体が終了するまで、それらは存続します。
例:
+ (id)sharedInstance {
static singletonInstance = nil; // for example
if (singletonInstance == nil) {
singletonInstance = [[self alloc] init];
}
return singletonInstance;
}
スコープはCと同じようにファイルレベルにあります。静的であるため、変数はアプリケーションの存続期間中残り、クラスのすべてのインスタンスがそれにアクセスできます。良い例は、シングルトンインスタンスを参照する、グローバルカウンターを実装する、またはある種のリソースロックを実装することです。