2010-07-26 85 views
11

如果我有一個UIView,並且我在其中添加一個分配的子視圖(本例中爲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

......這並不是說子視圖本身被釋放,因爲它們可能被別的東西(或其他幾個東西)所保留。 – 2010-07-26 22:56:18