我在应用程序上添加了进度条。一切都很好,按照我想要的方式运行。但是问题是,当我将下载的数据附加到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/

10-11 00:33