разработка iPhone - предотвращение утечек - PullRequest
4 голосов
/ 24 января 2009

Когда я запускаю свое приложение с утечками и просматриваю расширенную информацию для любых утечек, это приводит меня к определенной строке в моем коде, но я не знаю, что делать после этого!

Например, Leaks показывает malloc в этой строке

NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

Но я не знаю, в чем проблема в утверждении! Может кто-нибудь, пожалуйста, скажите мне, как интерпретировать такие проблемы и избежать утечек.

Спасибо.

Edit: Что касается предыдущего вопроса, NSZombieEnabled следит за тем, чтобы никакие объекты не освобождались, и это увеличивает использование памяти. Поэтому при тестировании с использованием Leaks убедитесь, что этот параметр удален из вашего приложения. Думал, что это может кому-то помочь.

Ответы [ 4 ]

3 голосов
/ 26 января 2009

Нашел ответ. Ответ Фредрика заставил меня задуматься. Я создавал экземпляр NSURLResponse и NSError, который затем передавал методу sendSynchronousRequest. Согласно документу управления памятью iPhone, это не должно быть сделано. Нам просто нужно передать ссылку на объекты NSURLResponse и NSError в метод, а метод позаботится о создании и освобождении объектов.

Надеюсь, это поможет кому-то еще. Большое спасибо за ответы всем.

2 голосов
/ 24 января 2009

Панель Extended Detail даст вам трассировки стека, показывая вам стек в утечке. Как правило, хорошее начало - это посмотреть на ваши методы и последний метод вашего кода в стеке и посмотреть, что вы делаете там с памятью, похоже, вы могли бы чрезмерно сохранить объект. Начните там сейчас

1 голос
/ 24 января 2009

Утечка в упомянутом выше методе должна была быть исправлена ​​в выпуске iPhone OS 2.2. Какую версию iPhone OS вы используете?

1 голос
/ 24 января 2009

Освобождаете ли вы объекты ответа и ошибки после вызова? Они могут быть выделены в вызове.

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