125 votes

Comment joindre des éléments NSArray dans un NSString?

Étant donné un NSArray de NSStrings, existe-t-il un moyen rapide de les regrouper en un seul NSString (avec un séparateur)?

314voto

Dave DeLong Points 156978
 NSArray * stuff = /* ... */;
NSString * combinedStuff = [stuff componentsJoinedByString:@"separator"];
 

C'est l'inverse de -[NSString componentsSeparatedByString:] .

12voto

BJ Homer Points 29168

-componentsJoinedByString: sur NSArray devrait faire l'affaire.

1voto

Ben G Points 2106

Il y a aussi cette variante, si votre tableau d'origine contient des objets Key-Value à partir desquels vous voulez seulement choisir une propriété (qui peut être sérialisée en tant que chaîne):

 @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
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X