7

これは適切なコーディング方法ではありませんが、次のように機能するマクロが必要です。

CREATE_STRING(fooBar)

そして、次のコードを作成する必要があります。

NSString *fooBar = @"fooBar";

私のマクロは次のようになります。

#define CREATE_STRING(varName) NSString *varName = @"varName";

しかし今、私は次のことを得る

NSString *fooBar = @"varName";

解決するのはとても簡単な問題のようで、IBMのドキュメントを既に確認しましたが、文字列を取得できないようですvarName

4

2 に答える 2

15

使用する

#define CREATE_STRING(varName) NSString *varName = @#varName

代わりは。(また、マクロを C のような関数として「呼び出す」ことができるようにするために、末尾のセミコロンは必要ないことに注意してください。)

于 2012-05-04T13:30:40.503 に答える
10

これはそれを行う方法です

#define CREATE_STRING(varName) NSString *varName = @"" #varName

コンパイラによって 2 つの文字列定数が次々に連結されるという事実を利用しています。

于 2012-05-04T13:53:45.143 に答える