我写这个连接两个字符串:
#define Append(x, y) [NSString stringWithFormat:@"%@%@",x,y]
但是,如果我有两个以上的NSString对象,该怎么办?有没有办法修改它以适用于任意数量的字符串值?
答案 0 :(得分: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终止参数列表。