Как присоединиться к элементам NSArray в NSString?

Учитывая NSArray из NSStrings, есть ли быстрый способ объединить их в одну NSString (с разделителем)?

Ответ 1

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

Это инверсия -[NSString componentsSeparatedByString:].

Ответ 3

Также этот вариант, если ваш исходный массив содержит объекты Key-Value, из которых вы хотите выбрать только одно свойство (которое может быть сериализовано как строка):

@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