3

Objective-Cクラスで静的変数を作成するにはどうすればよいですか?プライベート変数のヘッダーファイルで@privateを使用することはよく知っていますが、静的変数にアクセスする静的メソッドを作成しようとしています。この静的変数をヘッダーファイルでどのように宣言する必要がありますか?

4

3 に答える 3

3

この点で、Objective-C は単純に C に従います。つまり、静的ファイル変数を作成します。実装 (つまり .m ファイル) の任意の場所に宣言を配置します (ただし、理想的には、ファイルの先頭などの適切な場所、または 1 か所でのみアクセスされる場合は関連するメソッド内)。

このような static への制御されたアクセスを提供する場合は、メソッド実装の外に配置し、クラス メソッドを使用してアクセスします。

于 2011-07-06T19:16:55.410 に答える
2

Objective-C の静的変数は、C の静的変数と同じ規則に従います (ストレージ修飾子)。ファイルまたは関数スコープで静的変数を宣言できますが、インスタンス変数のようにクラスとは関係ありません。

于 2011-07-06T19:15:33.567 に答える
1

Objective-C には静的クラス変数がありません。ただし、(C と同様に) モジュール静的変数を作成することはできます。プライベートな静的変数を持つには:

//MyClass.m
static int MyStatic;

@implementation MyClass
@end

MyStaticモジュールレベルのスコープを提供します。externこれは単なる C であるため、宣言を介してパブリックに可視化せずに、MyClass のカテゴリなどから MyStatic を可視化する方法はありません。静的変数は事実上グローバル変数であるため、これはおそらく良いことです。MyClass は、 の存在を隠すためにできる限りのことを行う必要がありMyStaticます。

静的変数をパブリックにしたい場合 (本当にしたくありません):

//MyClass.h
extern int MyStatic;

@interface MyClass {}
@end

//MyClass.m
int MyStatic;

@implementation MyClass
@end
于 2011-07-06T19:24:28.533 に答える