2012-04-03 3 views
0

В моем приложении для iPad,Когда выпустить динамически созданные объекты

У меня есть один пользовательский класс, унаследованный от UIButton.

Я добавляю кнопки на моем основном представлении динамически, используя для цикла.

Эта кнопка также имеет ярлык.

Моя проблема в том, когда выпустить объекты пользовательского класса.

for(NSMutableDictionary *dict in Categories) 
{ 

Category *category=[[Category alloc] initWithName:[dict valueForKey:@"category_name"] identity:[[dict valueForKey:@"category_id"] intValue] imageName:nil]; 

category.lblimagesCount=[[UILabel alloc] initWithFrame:CGRectMake(category.frame.size.width-31, category.frame.origin.y-42, 26, 26)]; 

[category addSubview:category.lblimagesCount]; 

[self.viewHeader addSubview:category]; 

[category release]; 
category=nil; 

} 

Как избежать утечек памяти. Специально для 1. Этикетки 2. Класс категории.

Где написать релиз?

i. Класс категории (UIButton) имеет свой метод dealloc, но он никогда не вызывается.

ii. Поскольку я освобождаю его сразу после добавления его в subview, повлияет ли он на мою кнопку.

iii. Когда мне следует отпускать метки.

Очень смущенно об управлении памятью.

ответ

3

Я отвечу на ваши вопросы:

я. Класс категории (UIButton) имеет свой метод dealloc, но он никогда не вызывается. Потому что он не полностью выпущен, см. Вопрос ii.

ii. Поскольку я освобождаю его сразу после добавления его в subview, повлияет ли он на мою кнопку. Нет, потому что ваш подзаголовок теперь является владельцем кнопки, когда вы добавляете его в подвью, и вы, и подчиненные владельцы, когда вы отпустите, теперь кнопка принадлежит субвирусу.

iii. Когда мне следует отпускать метки. Как только вы добавляете в подзаголовок по той же причине, что и вопрос ii.

Буду рад прояснить, не понимаете ли вы это.

+0

@Antoonio Как будет выпущен лейбл, связанный с классом категории? –

+0

Потому что Антонио, что произойдет, если я выпущу метки после добавления его в подзаголовки, я не могу изменить его далее в коде. Поскольку метки не отражают изменения. –

+0

Как я уже говорил, когда вы добавляете subview, ваше представление принадлежит subview не всем свойствам вашего объекта? –

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