2010-07-26 4 views
11

Если у меня есть UIView, и я добавлю в него выделенный subview (в данном случае UIImageView), когда я выпущу UIView, будет выпущен UIImageView?Выпускает ли релиз UIView все его подзаголовки?

Я настроил свой вид и подвид, как это:

UIView *view=[[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)]; 
UIImage *myImage=[UIImage imageNamed:@"image.png"]; 

// This is the subview: 
UIImageView *imageView=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)]; 
imageView.image=myImage; 

[view addSubview:imageView]; 
[imageView release]; 

Теперь, когда я звоню:

[view removeFromSuperview]; 
[view release]; 

Будет выделено ImageView также будет выпущен, или я должен удалить его, удалив все представления в представлении?

Любое понимание этой темы очень ценится.

ответ

13

Да. UIView «владеет» подзаголовками, поэтому он освобождает их, когда он сам деллакод.

+4

..., который не означает, что подвыходы сами по себе деалокод, так как они могут быть сохранены чем-то другим (или несколькими другими). –