我使用多个CALayer的在我的大的UIImage为内容的应用程序。 不幸的是,当我不需要层也没有图像 - 内存不释放。
我用它来创建层的代码是:
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)
代码中,我用它来释放层和它的内容是:
CALayer * l = [self.tmpArr objectAtIndex:i];
[l removeFromSuperlayer];
[l setHidden:YES];
[l setContents:nil];
[self.tmpArr removeAllObjects];
当我使用仪器内存分析器我看到创建层,但释放时有降低从未当真正的内存增加。 因为我使用ARC我不能使用释放。 我该怎么办错在这里?
谢谢。