2009-01-24 2 views
4

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

Например, Утечка показывает таНос на этой линии

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

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

Спасибо.

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

ответ

3

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

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

1

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

+0

Hi Colin. Панель Расширенные сведения не показывает класс или метод, который вызывает утечки в случае объектов зомби. Вот почему я опубликовал вопрос. Как узнать, где создаются объекты зомби? Благодарю. – lostInTransit

+0

Можете ли вы показать скриншот того, что вы видите? Также, какую версию iPhone OS вы планируете? –

1

Вы освобождаете объекты ответа и ошибки после вызова? Возможно, это выделено в вызове.

+0

Привет Фредрик. Если я отпущу объекты ответа и ошибки, в этом месте отображается malloc, снова утечка! Я отправлю еще несколько кодов и журналов, когда вернусь к своему Mac. Благодарю. – lostInTransit

1

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

+0

Я использую 2.1. Создал проект до версии 2.2. Вы уверены, что это было исправлено с 2.2? благодаря – lostInTransit

Смежные вопросы