1

私のアプリケーションでは、マクロを再定義する必要があります。私はこれが好きでした。

-(void)viewDidLoad{

#undef kMacro
#define kMacro @"New Value"

}

この関数内で正常に動作しています。NSLogこの関数の中に入れると、「新しい値」が得られます。ただし、この新しい値をこの関数の外または他のクラスで取得することはできません。(古い値を取得しています)。マクロをグローバルとして再定義することはできますか?

4

1 に答える 1

1

ファイル内のマクロを再定義すると、すべてのファイルが個別のコンパイル単位として扱われるため、マクロはそのファイルに対してのみ有効になります。

他のクラスで機能させるには、ヘッダー ファイルに入れ、使用するすべてのファイルに #import する必要があります。

さらに良いのは、マクロを使用せず、適切な C を使用することです。

const NSString* kMyString = @"New Value";

その後、他の .m ファイルで通常の外部変数としてアクセスできます。

于 2012-10-19T15:39:40.740 に答える