Предупреждение памяти при загрузке файла с AFNetworking


Обновление:

Я написал очень простой код загрузки:

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 2

4 ответа:

Я думаю, вы открываете режим Зомби. Продукт - > Схема - > Редактировать Схему
Снимите флажок opition [Enable Zombie Object]

Введите описание изображения здесь

Это неловко. Я создал новый проект, и скопировать тот же код, и он работает без предупреждения памяти. Операция загрузки не влияет на память. Я не понимал, в чем проблема. Может быть, из-за настроек проекта.

То же самое случилось и со мной. Отключить зомби объект работал на меня.

Попробуйте загрузить вручную с помощью NSOperationQueue

Иди сюда