NSMutableData appendData:重新分配,内存问题

时间:2012-01-03 13:56:22

标签: iphone cocoa-touch cocoa ipad memory-management

我在我的应用程序中添加了一个进度条。一切都很好,按我想要的方式运行。但问题是当我将下载的数据附加到didReceivedData:时,我的responseData被重新分配,从而使我的应用程序消耗太多内存。然后在收到记忆警告后崩溃。

   -(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中摆脱重新分配吗?

感谢!!!

1 个答案:

答案 0 :(得分:2)

创建responseData时,使用initWithCapacity:提示您需要多少字节(可以从响应标头中检索预期的内容长度)。