viewWithTag y addSubview

Estoy intentando reutilizar la label haciendo una llamada para ver con la label cuando presiono el button UIB. El código se ve bien cuando se ejecuta la primera vez, pero ¿tiene fugas al ejecutarlo varias veces debido a la línea 7? ¿También es mejor eliminar la label de la vista de supervisión, asignar y agregar Vista de subida en lugar de usar viewWithTag?

1. UILabel *label = (UILabel *)[self.view viewWithTag:100]; 2. if(label == nil) { 3. label = [[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 20, 20)] autorelease]; 4. label.tag = 100; 5. } 6. 7. [self.view addSubview:label]; 

Mueva el código [self.view addSubview:label]; dentro de tu bloque if . Cuando su condición de if es falsa, eso significa que la label ya forma parte de la jerarquía de vista de su viewcontroller, por lo tanto, si la agrega nuevamente como en su código original, será retenida dos veces.

 UILabel *label = (UILabel *)[self.view viewWithTag:100]; if (!label) { label = [[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 20, 20)] autorelease]; label.tag = 100; [self.view addSubview:label]; } 

Si está utilizando un .xib o storyboard simplemente conéctelo con un IBOutlet.

Si usa solo código, intente savelo como una variable privada.