Gibt es bei einem NSArray von NSStrings eine schnelle Möglichkeit, sie zu einem einzigen NSString (mit einem Separator) zusammenzufügen?
Gibt es bei einem NSArray von NSStrings eine schnelle Möglichkeit, sie zu einem einzigen NSString (mit einem Separator) zusammenzufügen?
Antworten:
NSArray * stuff = /* ... */;
NSString * combinedStuff = [stuff componentsJoinedByString:@"separator"];
Dies ist die Umkehrung von -[NSString componentsSeparatedByString:]
.
-componentsJoinedByString:
auf NSArray sollte den Trick machen.
Es gibt auch diese Variante, wenn Ihr ursprüngliches Array Schlüsselwertobjekte enthält, aus denen Sie nur eine Eigenschaft auswählen möchten (die als Zeichenfolge serialisiert werden kann):
@implementation NSArray (itertools)
-(NSMutableString *)stringByJoiningOnProperty:(NSString *)property separator:(NSString *)separator
{
NSMutableString *res = [@"" mutableCopy];
BOOL firstTime = YES;
for (NSObject *obj in self)
{
if (!firstTime) {
[res appendString:separator];
}
else{
firstTime = NO;
}
id val = [obj valueForKey:property];
if ([val isKindOfClass:[NSString class]])
{
[res appendString:val];
}
else
{
[res appendString:[val stringValue]];
}
}
return res;
}
@end