iOS では、アプリケーションは約 400MB の zip ファイルをダウンロードしています。ファイルのダウンロード中に断続的にクラッシュします。
現在、[NSFileHandle writeData:] を使用して、データが入ってくると書き込みますが、メモリに保存されていません。しかし、オペレーティングシステムが何らかの形でそれをメモリに保存しているのだろうか?
NSOutputStream は、大きなファイルをダウンロードするためのより良いソリューションでしょうか? または、おそらく標準の UNIX ファイル記述子ですか?
ファイルハンドルは次のように設定されています。
NSFileManager * fileManager = [NSFileManager defaultManager];
[fileManager createFileAtPath:tmpFilePath.path contents:nil attributes:nil];
_zipFile = [NSFileHandle fileHandleForWritingAtPath:tmpFilePath.path];
現在、私の NSURLConnection デリゲート メソッドは次のようになっています。
- (void) connection:(NSURLConnection *) connection didReceiveData:(NSData *) data {
[_zipFile writeData:data];
}
そのため、リクエストからのデータは保存されず、他のデータ オブジェクトに追加されません。これはディスクに書き込むだけで、メモリに影響を与えるべきではありませんか?
ありがとう