1
私は大きなアプリを持っています。最初は20 MBのRAMを想定していました。ASIHTTPRequestは自分のデータをキャッシュします。私はキャッシュの種類をしたくない
たとえば、14 MBのオペラをダウンロードします。数分後、私はオペラをダウンロードしました。アプリケーションのRAMが20から34 MBに増加しました。これは大きな問題です。私が200 MBのファイルをダウンロードしたいのであれば、私のアプリは殺されるからです(14 + 200)。私は数回試して、私は "メモリ警告を受け取りました"を取得し、その後、アプリが殺されました。
ASIHTTPRequestは自分のデータをキャッシュします。どうしてか分かりません。私はリクエストからすべてのコードを削除しました:didReceiveData :.しかし、それは私を助けなかった。
重要::私は新しい空のプロジェクトを作成し、このコードを追加しました。このプロジェクトでは、すべてがうまくいきます。 ASIHTTPRequestはデータをキャッシュしません。 XCodeの設定を変更する必要がありますか?
-(void) downloadOpera
{
self.currentPath = @"http://get-tsw-1.opera.com/pub/opera/mac/1164/Opera_11.64_Setup_Intel.dmg";
self.ASIRequest = [[[ASIHTTPRequest alloc] initWithURL:[NSURL URLWithString:currentPath]] autorelease];
ASIRequest.delegate = self;
ASIRequest.shouldContinueWhenAppEntersBackground = YES;
[ASIRequest setCachePolicy:ASIDoNotWriteToCacheCachePolicy];
[ASIRequest startAsynchronous];
}
- (void)request:(ASIHTTPRequest *)request didReceiveData:(NSData *)data {}
- (void)requestFailed:(ASIHTTPRequest *)request {}
- (void)requestFinished:(ASIHTTPRequest *)request {NSLog(@"download finished");}