0

iOS アプリケーションに関するアドバイスを探しています。

基本的に、私のアプリが行うことは、一定期間内に特定のイベントを記録する CSV ファイルを生成することです。ユーザーがボタンを押すと、「タイプ X のイベ​​ントが時間 T に発生しました」というエントリがログに追加されます。

私がこれを行っている方法は、NSStrings を格納する NSMutableArray を維持することです。各イベントは、文字列を NSMutableArray に追加します。

ユーザーがセッションを終了すると、ファイルを「エクスポート」できます。私は NSMutableArray の writeToFile; を使用しています。次に、電子メール インターフェイスを使用して、そのファイルを CSV として対象の電子メールに送信します。

生成される CSV ファイルにメタデータが含まれていることを除いて、すべて機能します。具体的には、Excel で開いたときに表示されるファイルの先頭と、セルの各行の先頭にあると思います。

これは、使用しているデータ構造 (NSMutableArray) またはデータ型 (NSString) に固有のものですか? 生データを取得する方法はありますか?

必要に応じてコードをアップロードできます (ただし、今は職場のコンピューターの近くにいないので、このメタデータを表示しないようにする簡単な方法がないかどうかをテストしています)。

ありがとうございました!

4

1 に答える 1

0

CSV は非常にシンプルな形式です。文字列をセミコロンで区切り、. を使用してすべてをファイルに書き込むことができますNSOutputStream

このコードは、CSV 行を含む文字列配列が既にあることを前提としています。

NSOutputStream* csvoutput = [NSOutputStream outputStreamToFileAtPath:filepath append:NO];
[csvoutput open];
for (NSString* str in array) {
    NSString* tempStr = [str stringByAppendingString:@"\n"]; //new line
    NSData *strData = [tempStr dataUsingEncoding:NSUTF8StringEncoding];
    [csvoutput write:(uint8_t *)[strData bytes] maxLength:[strData length]];
}
[csvoutput close];

モデル クラス ( Event) を作成し、文字列ではなくイベント インスタンスを配列に入力することをお勧めします。それはよりクリーンで効率的です。次に、ファイルにエクスポートするときに CSV 文字列を作成します。

于 2012-11-20T21:02:51.360 に答える