Вопрос по iphone, ios – Как точно найти, где просачивается память в проекте iPhone

7

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

Когда ARC включен, мы должны заботиться об утечках памяти или нет?

Ваш Ответ

2   ответа
11

with ARC there are memory leaks, ARC не сборщик мусора, он только вставляет для вас, во время компиляции, сохраняет, выпускает и автоматически выпускает на ключевых позициях. Таким образом, хотя это помогает разработчику, вы должны знать, что утечки памяти все еще существуют (например, циклические ссылки). Вы можете начать с помощьюStatic Analyzer и исправьте любую проблему, которую он вам показывает. Затем вы можете перейти кInstruments and choose Leaks.

Error: User Rate Limit Exceededstackoverflow.com/questions/7761074/…
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
11

ARC Может произойти утечка памяти, он просто вставляет релиз и авто-релиз во время компиляции.

1. Вы должны проверить на утечки, используяBuild and analyze в XCode,shift+command+b Вы должны очистить эти проблемы.

2. После этого вы можете начать использовать инструменты, используя опцию профиляcommand+i , Это укажет вам, где может быть утечка.

Эта ссылка вам тоже поможетhttp://soulwithmobiletechnology.blogspot.in/2011/04/how-to-check-memory-leaks-in-xcode-4.html

Edit: Добавил несколько скриншотов, чтобы было понятно.

Во время профилирования после выбораleaks выбратьcall tree вариант и установите флажкиhide system libraries , invert call tree а такжеshow obj-c only как показано на рисунке ниже.

После двойного щелчка на имени символа под вами, вы получите строку, где он вытекает. enter image description here

Вы получите что-то подобное.

enter image description here

Error: User Rate Limit Exceeded SURESH SANKE
Error: User Rate Limit Exceeded
Error: User Rate Limit ExceededmightError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded SURESH SANKE

Похожие вопросы