После запуска xcode-> run with tool -> leaks, после прохождения симулятора с помощью расчески с мелкими зубьями и (Simulator) Instruments -> leaks отображается НОЛЬ.Но когда я запускаю само устройство, я получаю список из примерно 100+ элементов:
Leaked Object # Address Size Responsible Library Responsible Frame
GeneralBlock-64 9 < multiple > 576 UIKit GetContextStack
GeneralBlock-16 7 < multiple > 112 WebCore WebThreadCurrentContext
UIControlTargetAction 5 < multiple > 160 UIKit -[UIControl addTarget:action:forControlEvents:]
__NSArrayM 5 < multiple > 160 UIKit -[UIControl addTarget:action:forControlEvents:]
UIButton 5 < multiple > 720
Бла, Бла, Бла ..
Я где-то читал о ком-то, кто упоминал, чтоесли вы создаете какие-либо темы, они должны быть в главном потоке?(WTF? Это не имеет никакого смысла).
Да, мое приложение использует потоки, но только для визуализации UIAlertViews
, и все они расположены между [pool autorelease]
и [pool release]
, есть ноль неопубликованныхNSStrings
, кнопки, виджеты.Все, что распределяется, копируется, сохраняется, освобождается.
Кто-нибудь знает об этом Теме, который получает pool'd, вызывая сумасшедшие утечки памяти?
Заранее спасибо!
**** 25 мая 2011 года (11:35 по японскому времени) ***********
Хорошо, думаю, мне удалось определить причину моей памятиГоре ... Это эти придурковатые "AutoRelease UITableViewCells" ... Они НЕ выпускаются достаточно своевременно, пока они не вызвали сбой моего приложения ... Я только что просмотрел API AppleTableViewCell и ничего не увиделоб определении, является ли «ТВ-ячейка» действительно «ИСПОЛЬЗУЕМОЙ».Потому что мое приложение будет содержать только 30 ячеек на странице, но эти ячейки автоматического высвобождения продолжали расти, пока я не получил предупреждение о нехватке памяти (124 ТВ-ячейки).Кто-нибудь...?Знаешь, как я могу БЕЗОПАСНО выпустить эти ...?-
Я пытался использовать обычный «Alloc» и выпускать те, которые выходят прямо из очереди, (так что я знаю, что по крайней мере хорошее число было выпущено, но, как и ожидалось,это не понравилось .. Так что мне интересно, если это возможно сделать что-то вроде в ViewDidUnload () для (ячейки в очереди) [освободить ячейку] и прокрутить всю очередь, чтобы убедиться, что они все были убиты (конечно,Я бы не использовал авто-релиз) Любые идеи, любые гуру IOS ..? Заранее спасибо! - ChinaSailor 40 секунд назад edit