我在应用程序上添加了进度条。一切都很好,按照我想要的方式运行。但是问题是,当我将下载的数据附加到didReceivedData:中时,我的responseData被重新分配,因此使我的应用程序占用了过多的内存。然后在收到MemoryWarning之后崩溃。
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
//response data is getting reallocated with bigger size of data
[responseData appendData:data];
NSNumber* curLength = [NSNumber numberWithLong:[responseData length] ];
float progress = [curLength floatValue] / [filesize floatValue] ;
progressView.progress = progress;
}
这里有人可以帮助我如何摆脱我的responseData中的重新分配吗?
谢谢!!!
最佳答案
创建responseData
时,使用initWithCapacity:
提示您需要多少字节(可以从响应头中检索预期的内容长度)。
关于iphone - NSMutableData appendData:获取重新分配,内存问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8713325/