我正在用post请求下载40MB的文件。在下载请求期间,它也分配40MB。但在那之后,当下载完成时,内存不会自行释放。以下是我的示例代码,如何释放内存?
+(AFHTTPRequestOperation*)PostDownloadRequest:(NSDictionary*)postDic saveName:(Product*)product Url:(NSString*)Url success:(void (^)(id responseObject)) success failure:(void (^)(AFHTTPRequestOperation *operation)) failure
{
if(Downloadings==nil)
{
Downloadings=[[NSMutableArray alloc]init];
}
__block AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager.requestSerializer setValue:@"Application/Json" forHTTPHeaderField:@"Content-Type"];
[manager.requestSerializer setCachePolicy: NSURLRequestReloadIgnoringLocalCacheData];
if([IdentityUser UserId]!=nil)
[manager.requestSerializer setValue:[IdentityUser Token] forHTTPHeaderField:@"Authorization"];
if (product.productFormatType == 1) {
[manager.requestSerializer setValue:@"Application/pdf" forHTTPHeaderField:@"Accept"];
}
else{
[manager.requestSerializer setValue:@"Application/zip" forHTTPHeaderField:@"Accept"];
}
[Downloadings addObject:product.iosInAppId];
__block AFHTTPRequestOperation *requestOperation =[manager POST:Url
parameters:postDic
success:^(AFHTTPRequestOperation *operation, id responseObject) {
dispatch_queue_t taskQ = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(taskQ, ^{
FileProcess *pr=[[FileProcess alloc]init];
NSLog(@"%d", (int)product.productFormatType);
if (product.productFormatType == 1) {
[pr SavePdfToFile:product data:responseObject];
}
else{
[pr SaveEpubToFile:product data:responseObject];
}
});
success(nil);
responseObject=nil;
requestOperation=nil;
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
failure(operation);
}];
return requestOperation;
}发布于 2015-03-23 19:29:34
把你的代码放进去
@autoreleasepool {
...do your work here...
}试试这个:
@autoreleasepool { if (product.productFormatType == 1) pr SavePdfToFile:产品数据:响应对象;else pr SaveEpubToFile:产品数据:响应对象;}
https://stackoverflow.com/questions/29209086
复制相似问题