2

マクロの使い方を学んでいますが、今はマクロと混同しています。

NSStringすべてのパラメーターを互いに追加するだけの連結を作成しようとしています。

たとえば、次を含むものconcatOP(@"hey",@"Jude",@"Don't")を返します:NSString@"heyJudeDon't"

私は実際にパラメータの数を取得するコードを少し作成しましたが(ここにもいくつかあります)、ジョブの2番目の部分を作成できませんでした。

#define NUMARGS(...)        ( sizeof((int[]){__VA_ARGS__}) / sizeof(int) )
#define concatOP(...)       NSMutableString *format = [[NSMutableString alloc] init];\
                            for( int i = 0; i < NUMARGS(__VA_ARGS__); i++){\
                            [format appendString:@"%@"];}\
                            [[NSString alloc] initWithFormat:format, __VA_ARGS__]

実際には多くのエラーが発生し、形式が存在しないか、「;」が欠落しているとのことです。または他の終了タグ。

4

3 に答える 3