2010-08-17 3 views
0

Я новичок в объективе-c и на данный момент разрабатываю небольшое приложение.removeFromSuperview и управление памятью

У меня есть проблемы с управлением памятью и вы хотите задать этот конкретный вопрос. У меня есть кнопка, внешний вид которого я изменяющуюся:

for (UIView *subview in button.subviews) 
{ 
if (![subview isKindOfClass:[UIImageView class]]) // don't remove UIImageView, otherwise it will not be able to set background 
    { 
     [subview removeFromSuperview]; 
    } 
} 
[button setBackgroundImage: [[imageArray objectAtIndex:itemNumber] forState:UIControlStateNormal]; 
/* 
    creating myView and myLabel here 
*/ 
[button addSubview:myView]; 
[button addSubview:myLabel]; 
[myLabel release]; 
[myView release]; 

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

Большое спасибо

+0

похоже, что ваша проблема связана с созданием ярлыка. Остальное на самом деле выглядит нормально ... –

+0

Какая проблема может быть там? Я создаю ярлык в коде, присваиваю ему некоторый текст из массива (не создавайте для него никаких объектов), а затем отпустите ярлык. Я думаю, что после [subview removeFromSuperview] время исполнения хранит эти данные в памяти, и я ничего не могу с этим сделать ((( – Burjua

ответ

1

как вы измерили? с инструментами? вы проверяли «объекты все еще живы» или вы измеряете общую память/объекты. есть разница.

+0

) Да, я использую инструменты и проверяю живые объекты и память. Похоже, что количество объектов остается все же, но объем памяти увеличивается – Burjua

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