0

私はJavaのバックグラウンドから来る任意のクラスからアクセスできる変数を作成しようとしています.Objective-Cでこれを理解するのに苦労しています..

Javaには次のものがあります。

public static int MAIN_MENU = 1, SELECTION_SCREEN = 2;

これらは次のようにどこからでもアクセスできます。

ClassName.MAIN_MENU;

Objective-Cがクラス内に保持するための最も単純な形式で同じことをどのように達成しますか?

4

3 に答える 3

3

Objective-C では、クラスには静的メンバーがありません。私が想像できる最善の方法は、まったく醜いグローバル変数を使用して getter および setter クラス メソッドを作成することです。

static T _member = initialValue;

+ (T)someStaticMember
{
    return _member;
}

+ (void)setSomeStaticMember:(T)newVal
{
    _member = newVal;
}

ゲッターのみが必要な場合、つまり読み取り専用メンバーのエミュレーションが必要な場合は、静的変数を関数内に移動します。少なくとも、そのようにしてグローバルが1つ少なくなります。


しかし、整数定数のみが必要な場合は、enum?を使用しないでください。または少なくともいくつかのマクロ?

于 2013-07-18T06:22:13.790 に答える
0

目的が独自のクラス内でのみ静的変数を使用する場合は、変数を.mファイルで宣言できます。それ以外の場合は、を使用してグローバル定数を定義する必要があります#define

#define CONSTANT [ any value ]

于 2013-07-18T06:23:14.720 に答える
0
  1. #define MAIN_MENU 1ヘッダーファイルで使用する必要があります。
  2. NSInteger const MAIN_MENU = 1;m ファイルとextern NSInteger const MAIN_MENU;hファイルで使用する必要があります。

そして#import、このヘッダーファイルを使用したいクラスにMAIN_MENU

于 2013-07-18T06:23:44.877 に答える