更新
我写了一个非常简单的下载代码:
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中写下了它,注释掉了所有其他代码。内存使用情况仍然相同且不断增加:
我创建了一个新项目,并且我在新项目中编写了完全相同的代码。内存使用情况是:
哪个好。但我不明白为什么它在实际项目中有所不同?
答案 0 :(得分:5)
我猜你打开了僵尸模式。
产品 - &gt;方案 - &gt;编辑方案
取消选中[启用僵尸对象]
答案 1 :(得分:1)
这很尴尬。我创建了一个新项目,并复制相同的代码,它没有内存警告。下载操作不会影响内存。我不明白这个问题。也许是因为项目设置。
答案 2 :(得分:0)
同样的事发生在我身上。禁用僵尸对象为我工作。
答案 3 :(得分:-2)
尝试使用NSOperationQueue手动下载