C连接NSStrings

在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";

我可以想到两个答案......既不像连接操作符那样特别愉快。

首先,使用一个NSMutableString ,它有一个appendString方法,消除了一些额外的临时字符串的需求。

其次,使用NSArray通过componentsJoinedByString方法连接。


一个选项:

[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;
}

如果你有2个NSString 文字 ,你也可以这样做:

NSString *joinedFromLiterals = @"ONE " @"MILLION " @"YEARS " @"DUNGEON!!!";

这对于加入#define也很有用:

#define STRINGA @"Also, I don't know "
#define STRINGB @"where food comes from."
#define JOINED STRINGA STRINGB

请享用。

链接地址: http://www.djcxy.com/p/5989.html

上一篇: C to concatenate NSStrings

下一篇: Determine device (iPhone, iPod Touch) with iPhone SDK