NSMutableData appendData: перераспределяется, проблема с памятью - PullRequest
0 голосов
/ 03 января 2012

Я добавил индикатор прогресса в свое приложение. все хорошо, работает так, как я хочу. но проблема в том, что когда я добавляю загруженные данные в 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;
     }

Может ли кто-нибудь здесь помочь мне, как избавиться от перераспределения в моих данных ответа?

спасибо !!!

1 Ответ

2 голосов
/ 03 января 2012

При создании responseData используйте initWithCapacity:, чтобы подсказать, сколько байт вам потребуется (ожидаемая длина содержимого может быть получена из заголовка ответа).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...