2

アップデート:

非常に単純なダウンロード コードを作成しました。

NSArray       *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString  *documentsDirectory = [paths objectAtIndex:0];

NSURLRequest* request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://xxxx.s3.amazonaws.com/products/ipad/xxxx.mp4"]];
for(int i=0; i<4; i++){
    NSString  *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,[NSString stringWithFormat:@"xxxx%d.mp4",i]];
    AFDownloadRequestOperation* operation = [[AFDownloadRequestOperation alloc] initWithRequest:request targetPath:filePath shouldResume:YES];
    operation.outputStream = [NSOutputStream outputStreamToFileAtPath:filePath append:NO];
    [operation setShouldOverwrite:YES];
    [operation setProgressiveDownloadProgressBlock:^(AFDownloadRequestOperation *operation, NSInteger bytesRead, long long totalBytesRead, long long totalBytesExpected, long long totalBytesReadForFile, long long totalBytesExpectedToReadForFile) {
        NSLog(@"%f", ( totalBytesRead / (float)totalBytesExpected));
    }];
    [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSLog(@"finished");
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(error.description);
    }];
    [[NSOperationQueue mainQueue] addOperation:operation];
}

私は自分のプロジェクトviewDidLoadでそれを書き、他のすべてのコードをコメントアウトしました。メモリ使用量は変わらず、増加しています。

ここに画像の説明を入力

新しいプロジェクトを作成し、新しいプロジェクトにまったく同じコードを書きました。そして、メモリ使用量は次のとおりです。

ここに画像の説明を入力

どっちがいい。しかし、実際のプロジェクトではなぜ違うのかわかりませんか?

4

4 に答える 4

5

ゾンビモードを開いていると思います。製品 -> スキーム -> スキームの編集
オプション [ゾンビ オブジェクトを有効にする] のチェックを外します

ここに画像の説明を入力

于 2013-11-19T03:12:29.213 に答える
1

これは厄介です。新しいプロジェクトを作成し、同じコードをコピーしましたが、メモリ警告なしで動作しています。ダウンロード操作はメモリに影響しません。問題がわかりませんでした。プロジェクトの設定が原因かもしれません。

于 2013-10-06T15:10:45.867 に答える
0

私にも同じことが起こりました。ゾンビオブジェクトを無効にするとうまくいきました。

于 2014-03-03T11:54:34.620 に答える
-2

NSOperationQueue を使用して手動でダウンロードしてみてください

ここへ到着する

于 2013-10-03T13:06:00.367 に答える