2012-01-04 3 views
1

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

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

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

Каждый знает, как я могу почини это?

+0

Вы могли бы рассказать, что нужно сделать, чтобы решить проблему – Mona

ответ

3

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

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

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

Пробег: heapshot analysis. Это очень хорошо при поиске такого рода аккреции с течением времени.

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