2

私は2つの文字列を連結するためにこれを書きました:

#define Append(x, y) [NSString stringWithFormat:@"%@%@",x,y]

ただし、NSStringオブジェクトが2つ以上ある場合はどうなりますか。任意の数の文字列値で機能するようにこれを変更する方法はありますか?

4

1 に答える 1

3

マクロである必要がありますか?メソッドを使用できる場合は、次のようにします。

- (NSString*)concatenateStrings:(NSString*)string, ...
{
    NSString* result = string;

    va_list args;
    va_start(args,string);

    NSString* arg;
    while((arg = va_arg(args,NSString*)))
        result = [result stringByAppendingString:arg];

    va_end(args);

    return result;
}

あなたは次のようなものでそれを呼ぶでしょう:

NSString* result = [self concatenateStrings:@"ABC",@"DEF",@"GHI",nil];

引数リストをnilで終了することを忘れないでください。

于 2012-10-25T20:45:11.023 に答える