1

私は大きなアプリを持っています。最初は20MBのRAMを想定していました。

たとえば、14MBのオペラをダウンロードしたいと思います。数分後、私はオペラをダウンロードしました。私のアプリケーションRAMは20から34MBに増加します。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");}
4

1 に答える 1

2

ゾンビ オブジェクトの有効化をオフにしてリラックス...

于 2012-05-13T15:05:58.083 に答える