我在应用中获得了大约30000行数据,我想将其添加到CSV文件并通过电子邮件发送给用户。每个数据点当前有大约20个属性,我将〜20多个值作为扩展属性添加,存储在NSMutableDictionary中。这是很多数据,创建文件并将其附加到电子邮件已经需要大约10秒钟。
我可以使用
从常规属性构建一串CSV值[NSString stringWithFormat:@"%f,%f,%f",prop1,prop2,prop3 ];
我可以像这样迭代字典。我可以为每个键重复构建一个字符串,但每次都会重新创建一个新字符串。在iOS中等效于StringBuilder或StringBuffer吗?
for(NSString *aKey in myDictionary){
NSLog(aKey);
//append string
}
将NSMutableDictionary中的现有属性和扩展属性组合在一起以创建单个逗号分隔值的字符串的最佳方法是什么?
答案 0 :(得分: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);
答案 1 :(得分:3)
这篇文章很老,但对于那些寻求更清洁解决方案的人来说,你可以这样做:
NSArray *keys= [myDictionary allKeys];
NSString *csv = [keys componentsJoinedByString:@", "];