Existe-t-il des raccourcis pour (stringByAppendingString:
) concaténer des chaînes de caractères en Objective-C, ou des raccourcis pour travailler avec NSString
en général ?
Par exemple, j'aimerais faire :
NSString *myString = @"This";
NSString *test = [myString stringByAppendingString:@" is just a test"];
quelque chose qui ressemble plus à :
string myString = "This";
string test = myString + " is just a test";
[NSString stringWithFormat:@"%@/%@/%@", one, two, three];
Je suppose que vous n'êtes pas satisfait des ajouts multiples (a+b+c+d), auquel cas vous pourriez faire :
NSLog(@"%@", [Util append:one, @" ", two, nil]); // "one two"
NSLog(@"%@", [Util append:three, @"/", two, @"/", one, nil]); // three/two/one
en utilisant quelque chose comme
+ (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;
}
Deux réponses me viennent à l'esprit... aucune n'est particulièrement aussi agréable que d'avoir simplement un opérateur de concaténation.
Premièrement, utilisez une NSMutableString
, qui possède une méthode appendString
, supprimant ainsi le besoin de chaînes temporaires supplémentaires.
Deuxièmement, utilisez un NSArray
pour concaténer via la méthode componentsJoinedByString
.