Утечка памяти при executeSelectorOnMainThread - PullRequest
1 голос
/ 04 января 2012

У меня проблемы с управлением памятью в моем приложении.Некоторое время приложение будет работать правильно, затем я получу сообщение об ошибке Received memory .Затем я запустил свое приложение через профиль, чтобы найти утечки памяти.После отслеживания утечек я получил 100% утечку памяти в этой строке:

    [self performSelectorOnMainThread:@selector(loadingProgress:) withObject:[NSNumber numberWithFloat:0.0] waitUntilDone:NO];

Я могу быть наивным, но я не знал, что это может привести к утечке ...знаете, как я могу это исправить?

1 Ответ

3 голосов
/ 04 января 2012

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

Обратите внимание, что инструмент «Утечки» показывает, где была обнаружена утечкане там, где это могло бы быть чрезмерно сохранено.

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

Попробуйте анализ heapshot .Это очень хорошо для нахождения такого рода аккреции с течением времени.

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