-3

次に、#define hhh "uu"次の方法を使用して文字列を連結したい:

NSString *str [NSString stringWithFormat@"%@%@",hhh,"ii"];

しかし、コンパイルエラーが発生します。

4

1 に答える 1

2

:最初の問題: の後にコロンがありませんstringWithFormat。2 番目の問題: 変数名strと初期化式の間に代入演算子がありません。

3 番目の問題: フォーマット文字列の 2 番目の引数@"%@%@"はプレーンな標準 C 文字列 (aka, char*) であり、フォーマット文字列はオブジェクト (aka, NSString) を呼び出します。@文字列リテラルの先頭に aを追加します。

NSString* str = [NSString stringWithFormat: @"%@%@",hhh,@"ii"];

編集の仮定が間違っています。私は見落としましたdefine:ここでは、それhhhはオブジェクト参照であると仮定します。たとえば、idNSString*または何か)。

hhhもプレーン文字列であるため、フォーマット文字列でプレースホルダーとして指定する必要があります%s

NSString* str = [NSString stringWithFormat: @"%s%@",hhh,@"ii"];

@schが推奨したように。

于 2012-05-05T18:01:13.900 に答える