iOS5 NSMutableDictionary эффективно преобразовать в разделенный запятыми список значений - PullRequest
0 голосов
/ 22 октября 2011

Я получил ~ 30000 строк данных в приложении, которое я хотел бы добавить в файл CSV и отправить пользователю электронное письмо. Каждая точка данных в настоящее время имеет ~ 20 свойств, и я добавляю еще ~ 20 значений в качестве расширенных атрибутов, хранящихся в NSMutableDictionary. Это много данных, и для создания файла и его прикрепления к электронному письму уже требуется ~ 10 секунд.

Я могу построить строку значений CSV из обычных свойств, используя

[NSString stringWithFormat:@"%f,%f,%f",prop1,prop2,prop3 ];

Я могу повторить словарь следующим образом. Я могу многократно создавать строку для каждого ключа, но это будет заново создавать новую строку каждый раз. Есть ли эквивалент StringBuilder или StringBuffer в iOS?

for(NSString *aKey in myDictionary){

    NSLog(aKey);
   //append string

}

Каков наилучший способ объединить существующие свойства и расширенные атрибуты из NSMutableDictionary для создания одной строки значений, разделенных запятыми?

Ответы [ 2 ]

3 голосов
/ 17 июля 2013

Этот пост старый, но для тех, кто ищет более чистое решение, вы можете сделать следующее:

NSArray *keys= [myDictionary allKeys];
NSString *csv = [keys componentsJoinedByString:@", "];
3 голосов
/ 22 октября 2011

Инициализируйте изменяемую строку вне цикла for и добавьте ее как хотите.

NSMutableString *large_CSV_String = [[NSMutableString alloc] init];
for(NSString *aKey in myDictionary){

    // Add something from the key?? Your format here.
    [large_CSV_String appendFormat:@",%@",aKey];

}
NSLog(@"%@",large_CSV_String);
...