我正在使用ARC,我在使用AFNetworking時在我的應用中下載多個文件(10000+)時出現問題。我正在創建每個AFHTTPRequest,然後將它們排隊等待執行。當我使用儀器運行時,可以看到內存使用量不斷增加,直到所有文件都被下載完畢,才釋放所有內存。這在模擬器上仍然存在,但在iOS設備上運行時會崩潰。AFNetworking下載多個文件的內存空間
下面是我在做什麼的樣本代碼
for (int i = 0; i < NUM_OF_FILES_TO_DOWNLOAD; i++) {
_imageCounter++;
[self downloadFile:i];
}
- (void)downloadFile:(NSUInteger)num
{
NSString *fileURL = @"file/%d/", num];
NSURLRequest *url = [self.httpClient requestWithMethod:@"GET" path:fileURL parameters:nil];
AFHTTPRequestOperation *requestOperation = [_httpClient HTTPRequestOperationWithRequest:url success:^(AFHTTPRequestOperation *operation, id responseObject) {
...
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
...
}];
[_httpClient enqueueHTTPRequestOperation:requestOperation];
}
看來,文件(responseObject
)執行手術成功後塊沒有被釋放,這就是不斷增加內存佔用?它是否正確?我是否按照預期使用AFNetworking和operationQueue?
那麼解決方案是什麼呢? – Fab1n