No se puede liberar la memoria CALayer no utilizada cuando se utilizan varias capas

Estoy usando varios CALayer en mi aplicación con un gran contenido de UIImage. desafortunadamente, cuando no necesito la capa ni la imagen, la memoria no se libera.

El código que utilizo para crear la capa es:

<code>UIImage *im = [UIImage imageNamed:@"image_1.jpg"];
CALayer * l = [CALayer layer];
[l setBounds:CGRectMake(0, 0, 1024, 768)];
[l setPosition:CGPointMake(512, 384)];
[l setAnchorPoint:CGPointMake(0.5, 0.5)];
[l setHidden:NO];
[l setContents:(id) im.CGImage];
[self.layer addSublayer:l]; // self is a subclass of UIView
[self.tmpArr addObject:l]; // self.tmpArr contains the layers I am using (one in this example)
</code>

El código que uso para liberar la capa y su contenido es:

<code>CALayer * l = [self.tmpArr objectAtIndex:i];
[l removeFromSuperlayer];
[l setHidden:YES];
[l setContents:nil];
[self.tmpArr removeAllObjects];
</code>

Cuando estoy usando el generador de perfiles de memoria de los instrumentos, veo que la memoria real aumenta cuando se crea la capa, pero nunca disminuye cuando se libera allí. No puedo usar la versión ya que estoy usando ARC. ¿Qué hago mal aquí?

Gracias.

Respuestas a la pregunta(2)

Su respuesta a la pregunta