Não é possível liberar memória não utilizada do CALayer ao usar várias camadas

Eu estou usando vários CALayer na minha aplicação com grande UIImage como conteúdo. infelizmente, quando não preciso da camada nem da imagem - a memória não é liberada.

o código que eu uso para criar a camada é:

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

o código que eu uso para liberar a camada e seu conteúdo é:

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

quando estou usando o analisador de memória de instrumentos, vejo a memória real aumentando ao criar a camada, mas nunca diminuindo quando ela é liberada. Eu não posso usar o lançamento desde que eu estou usando o ARC. o que eu faço de errado aqui?

Obrigado.

questionAnswers(2)

yourAnswerToTheQuestion