2
的我寫了這個連接兩個字符串:宏連接可變數目串
#define Append(x, y) [NSString stringWithFormat:@"%@%@",x,y]
但是,如果我比只有兩個NSString對象更多。有沒有辦法修改這個以適用於任何數量的字符串值?
的我寫了這個連接兩個字符串:宏連接可變數目串
#define Append(x, y) [NSString stringWithFormat:@"%@%@",x,y]
但是,如果我比只有兩個NSString對象更多。有沒有辦法修改這個以適用於任何數量的字符串值?
它是否必須是一個宏?如果你可以使用一個方法,這個怎麼樣:
NSString* result = [self concatenateStrings:@"ABC",@"DEF",@"GHI",nil];
記住了零終止參數列表:
- (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;
}
,你會喜歡的東西叫。
使用NSMutableString,不要將NSStrings附加到循環中的NSStrings。 – TJez
這是否必須用宏來完成? - 它可以作爲一個功能或類別相對容易地完成。 – propstm
選中此項:http://stackoverflow.com/q/510269/1032151 –