2011-10-22 4 views
0

私はCSVファイルに追加して、ユーザーに電子メールを送信するアプリケーションで〜30000行のデータを取得しました。各データポイントは現在20個のプロパティを持ち、NSMutableDictionaryに格納されている拡張属性として〜20個の値を追加しています。これは大量のデータであり、ファイルを作成して電子メールに添付するまでにはすでに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:@", "];