2011-12-08 2 views
0

現在、私たちはiPadアプリケーションであるASIHTTPRequestを使用しています。これはPDFビューアです。ASIHTTPRequest大きなPDFクラッシュをダウンロードするiPad

現在、このコードを使用して、iPadの2に完全に罰金弊社のWebサーバーからのアプリのダウンロード大型PDFの50 + MBを:私たちは、アプリケーションのプロファイリングする場合

は、しかし、我々は、ダウンロード中にアプリケーション全体のメモリが保持していることを確認できPDFのフルサイズへのダウンロードが増えていて、アプリがメモリに書き込んでディスクに書き出しているように見えますか?

私たちの見た目が正しいかどうかを確認するには、誰もこの問題を以前見たことがありますか?

おかげでアーロンはあなたが持っているかもしれません

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
[request setDownloadDestinationPath:@"/Users/ben/Desktop/my_file.pdf"]; 

答えて

1

使用NSFileManagerあなたがソースコードを見ると先のディレクトリパス

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"my_file.pdf"]; 
    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
    [request setDownloadDestinationPath:filePath]; 
0

は、ドキュメントをダウンロードしている間、それはディスクに書き込むように、一時的なダウンロードパスを設定する必要があります。つまり、メモリフットプリントがシステムに受け入れられなくなったときに、全体を記憶に残し、クラッシュする可能性があります。これに関するドキュメントは完全にはっきりしていません。

downloadDestinationPathを使用してファイルにデータをダウンロードすると、要求が進行中のときにデータ が一時ファイルに保存されます。 このファイルのパスは、temporaryFileDownloadPathに格納されます。

temporaryFileDownloadPathがnilの場合はどうなるのでしょうか。

+0

を設定することは、あなたは一意の識別子で、temporaryFileDownloadPathがnilであれば、それはNSTemporaryDirectoryに設定されていることがわかります。だから、一般的には、おそらく、temporaryFileDownloadPathをnilに設定したままにしておきたいと思うでしょう。 –

関連する問題