0

componentsSeparatedByCharactersInSet私のアプリは現在、とcomponentsSeparatedByStringメソッドの組み合わせを使用して Web サービスから CSV ファイルを解析しています。ファイルが非常に大きいため (平均で 1 MB を超える)、iPad では解析に数秒かかり、遅すぎます。私のソリューションのメモリ フットプリントも問題です (フル テキスト ファイルをメモリに保持しています)。これが、より高速でメモリ効率の高いソリューションを探している理由です。直接CHCSVParser解析できるものに出くわしました。NSInputStreams

NSInputStream *stream = [NSInputStream inputStreamWithFileAtPath:file]; 
CHCSVParser * p = [[CHCSVParser alloc] initWithInputStream:stream 
    usedEncoding:&encoding delimiter:';'];

( CHCSVParserのサンプル プロジェクトからのソース)

私の質問:

NSInputStreamの結果としてを取得するにはどうすればよいNSURLRequestですか? (現在、CSV ファイル全体をオブジェクトとして取得し、解析するためにNSData変換しています)。NSString

NSInputStreamfrom を とNSURLRequest直接使用できCHSVParserますか?

CHCSVParsersinitWithInputStreamメソッドを使用することを一般的にお勧めしますか、NSURLRequestそれともドキュメントをメモリにダウンロードして、完全なダウンロード後に解析しますか?

4

1 に答える 1

2

NSURLConnectionDelegate と NSOutputStream を使用してファイルをディスクにダウンロードし (ダウンロード中に使用するメモリをできるだけ少なくします)、NSInputStream を同じファイルに開き、CHCSVParser に渡します。

于 2013-06-21T18:16:04.797 に答える