2010-07-26 2 views
11

Se ho un UIView e aggiungo una sottoview assegnata (in questo caso lo UIImageView), quando rilascio lo UIView, verrà rilasciato anche lo UIImageView?Rilascia una versione di UIView tutte le sue sottoview?

ho istituito mio punto di vista e una visualizzazione secondaria come questo:

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]; 

Ora, quando chiamo:

[view removeFromSuperview]; 
[view release]; 

Può l'ImageView assegnato anche essere rilasciato, o dovrei toglierlo rimuovendo tutte le sottoview della vista?

Qualsiasi approfondimento su questo argomento è molto apprezzato.

risposta

13

Sì. L'UIView "possiede" le sottoview così le rilascia quando è dealloc'd.

+4

... il che non vuol dire che le sottoview siano esse stesse dealloc, poiché potrebbero essere trattenute da qualcos'altro (o da qualcos'altro). –