在Objective-C中有没有(stringByAppendingString:)字符串连接的快捷方式,或者一般使用NSString的快捷方式?
例如,我想做:
NSString *myString = @"This";
NSString *test = [myString stringByAppendingString:@" is just a test"];
更像是:
string myString = "This";
string test = myString + " is just a test";
你可以使用NSArray as
NSString *string1=@"This"
NSString *string2=@"is just"
NSString *string3=@"a test"
NSArray *myStrings = [[NSArray alloc] initWithObjects:string1, string2, string3,nil];
NSString *fullLengthString = [myStrings componentsJoinedByString:@" "];
or
你可以使用
NSString *imageFullName=[NSString stringWithFormat:@"%@ %@ %@.", string1,string2,string3];
如何缩短stringByAppendingString和使用#define:
#define and stringByAppendingString
因此你可以使用:
NSString* myString = [@"Hello " and @"world"];
问题是它只适用于两个字符串,你需要包装额外的括号更多的追加:
NSString* myString = [[@"Hello" and: @" world"] and: @" again"];
正在尝试在lldb窗格中执行以下操作
[NSString stringWithFormat:@"%@/%@/%@", three, two, one];
这错误。
而是使用alloc和initWithFormat方法:
[[NSString alloc] initWithFormat:@"%@/%@/%@", @"three", @"two", @"one"];
一个选项:
[NSString stringWithFormat:@"%@/%@/%@", one, two, three];
另一个选择:
我猜你不满意多个追加(a+b+c+d),在这种情况下,你可以这样做:
NSLog(@"%@", [Util append:one, @" ", two, nil]); // "one two"
NSLog(@"%@", [Util append:three, @"/", two, @"/", one, nil]); // three/two/one
使用类似于
+ (NSString *) append:(id) first, ...
{
NSString * result = @"";
id eachArg;
va_list alist;
if(first)
{
result = [result stringByAppendingString:first];
va_start(alist, first);
while (eachArg = va_arg(alist, id))
result = [result stringByAppendingString:eachArg];
va_end(alist);
}
return result;
}