У меня есть приложение для iPad (IOS 4.3 & 5.0), которое создает UIView с не менее чем 2-мя поднаборами каждый раз, когда страницы пользователя перемещаются вперед или назад. 2 подпункта представляют собой объекты UIWebView.Утечка памяти UIWebView
При каждом соответствующем проглатывании старые UIWebViews удаляются и освобождаются должным образом (removeFromSuperview затем останавливает загрузку и устанавливает делегат в nil), а родительский UIView освобождается. Я могу подтвердить, что оба родительских UIView и 2 дочерних UIWebViews полностью исчезли.
Я могу видеть счетчик на веб-просмотрах, поскольку они удаляются, и я совершенно уверен, что они действительно удаляются каждый раз. Однако распределение памяти продолжает увеличиваться при каждом прохождении ~ 200-350k. Никаких утечек в инструменте, но я вижу, что использование памяти медленно растет. На iPad 1 приложение в конечном итоге (в течение 6-10 минут умеренного использования) получает несколько предупреждений памяти и прекращается. Сгенерирован журнал ошибок LowMemory ... и т. Д.
Мы используем stringByEvaluatingJavaScriptFromString и loadRequest для заполнения Webviews. Использование памяти увеличивается даже тогда, когда ничто не вводится или не загружается в webView.
Неужели кто-то испытывает такое поведение с помощью UIWebViews? Кто-нибудь справился с этим успешно?
Хоть, комментарии & ответы были бы весьма полезными.
Вы удаляете из супервизора, прекращаете загрузку и устанавливаете делегат на нуль, но уверены ли вы, что у вас нет дополнительного сохранения в этих веб-просмотрах? Возможно, вы не учитываете '@property (nonatomic, keep)'? – Tim
Привет, тебе повезло с этим бороться? –
Циркуляр ссылка. Один из моих взглядов все еще висел на контроллере. Довольно классическая память, в конце концов, но сложная для работы в большой кодовой базе. – smaura777