2010-05-31 2 views
1

Я слежу за документацией по использованию NSURLConnection и использую делегаты для управления соединением (переопределение среди других методов соединения: didFailWithError: и connectionDidFinishLoading:). Память, выделенная для объекта NSURLConnection, выделяется в этих методах делегата.NSURLConnection и XCode «Build and Analyze»

Проблема заключается в том, что запуск «Build/Build and Analyze» из меню XCode вызывает раздражающую «Потенциальную утечку объекта (...)» предупреждение в методе, вызывающем alloc в классе NSURLConnection (логически достаточно, поскольку я не отпустите его в том же блоке).

Есть ли способ заставить замолчать это предупреждение?

+0

Пожалуйста, покажите метод, предупреждающий. – JeremyP

ответ

0

Способ округления этого объекта хранения в сохраненной переменной экземпляра. Затем вы можете спокойно освободить его в конце вашего первого метода.

+0

Только для того, чтобы закрыть этот, я соглашусь на использование ивара. В то же время многое происходит с xcode и sdk, так что это, пожалуй, не большая проблема. –

0

Когда вы нажимаете на сообщение Analyzer, вы получаете дополнительную информацию, показывающую путь выполнения и т. Д. Означает ли это, что это просто глупо или это дает вам подсказку о том, что может быть неправильным?

Предполагая, что анализатор просто тупой, я бы просто сохранил ссылку в ivar, если сообщение вас беспокоит, а затем отпустите его из -dealloc.

Освобождение выделенного ресурса из метода делегата в любом случае немного напоминает мне вуду. У меня даже возникнет соблазн переместить весь код, обрабатывающий NSURLConnection в свой собственный класс.

+0

Нет, это не говорит мне ничего, кроме того, что я уже знаю: сообщение освобождения не отправляется в методе выделения объекта, а в делетете. Это связано с тем, что соединение выпущено в методах делегата, как описано в документации к ядру, на которую я ссылаюсь. Сохранение ссылки в иваре, вероятно, является способом закрыть сообщение, вы правы, но я надеюсь, что есть еще один более чистый способ добиться моей цели (правильное управление памятью, никаких предупреждений). –

0

Я с Флорентом на этом. «Листинг 1» в documentation от Apple NSURLConnection отметит «потенциальную утечку» в «сборке и анализе». Тем не менее, при запуске метода [theConnection release] в конце метода происходит сбой.

Хотел бы, чтобы кто-то прокомментировал это для меня!

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