Biorąc pod uwagę NSArray of NSStrings, czy istnieje szybki sposób połączenia ich w jeden NSString (z separatorem)?
Biorąc pod uwagę NSArray of NSStrings, czy istnieje szybki sposób połączenia ich w jeden NSString (z separatorem)?
Odpowiedzi:
NSArray * stuff = /* ... */;
NSString * combinedStuff = [stuff componentsJoinedByString:@"separator"];
To jest odwrotność -[NSString componentsSeparatedByString:]
.
-componentsJoinedByString:
na NSArray powinno załatwić sprawę.
Istnieje również ten wariant, jeśli oryginalna tablica zawiera obiekty klucz-wartość, z których chcesz wybrać tylko jedną właściwość (którą można serializować jako ciąg):
@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