2011-10-22 47 views
0

我在应用程序中获得了约30000行数据,我希望将其添加到CSV文件并通过电子邮件发送给用户。每个数据点目前有〜20个属性,并且我将大约20多个值作为扩展属性添加到NSMutableDictionary中。这是很多数据,创建文件并将其附加到电子邮件需要大约10秒钟。iOS5 NSMutableDictionary转换为逗号分隔值列表

我可以用

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

我可以遍历字典这样建立CSV值从常规属性的字符串。我可以为每个键重复构建一个字符串,但每次都会重新创建一个新字符串。在iOS中是否存在等同于StringBuilder或StringBuffer?

for(NSString *aKey in myDictionary){ 

    NSLog(aKey); 
    //append string 

} 

什么是现有的性能和扩展属性从一个NSMutableDictionary相结合,创造逗号分隔值的一个字符串的最好方法?

回答

3

在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); 
+0

谢谢你,成功了! –

+0

和你怎么做删除第一个逗号是额外的? –

3

这个职位是旧的,但为寻找更清洁的解决方案,你可以这样做:

NSArray *keys= [myDictionary allKeys]; 
NSString *csv = [keys componentsJoinedByString:@", "]; 
相关问题