删除UIImageView并恢复内存(我的内存泄漏)

时间:2012-11-06 21:48:47

标签: objective-c memory uiimageview erase

我正在制作一个简单的绘图应用程序,但是内存有问题。几分钟后使用它,它只是崩溃,它使iPad非常慢。

用户创建绘图的线条是由2x2像素的UIImageView组成的,所以这个UIImageView创建了几次:

UIImageView*dibujo = [[UIImageView alloc] initWithFrame:CGRectMake(x-1,y-1,2,2)];
dibujo.image = [UIImage imageNamed:@"pixelde2po2.png"];
tagdedibujo=tagdedibujo+1;
dibujo.tag=tagdedibujo;
[self.view addSubview:dibujo];

它正以这种方式被删除:

    for (int aa=ultimotag+1; aa<=tagdedibujo; aa++) {
    //NSLog(@"destruyendo: %i", aa);
    UIImageView*dibujo1 = (UIImageView *)[self.view viewWithTag:aa];

    [UIView animateWithDuration:0.5 animations:^{
        dibujo1.alpha=0;
    }];

}

[self performSelector:@selector(matardibujo) withObject:(self) afterDelay:(0.51)];
   ultimotag=tagdedibujo;




-(void) matardibujo{
for (int aa=ultimotag+1; aa<=tagdedibujo; aa++) {
    [[self.view viewWithTag:aa] removeFromSuperview];
}

}

即使在删除de draw(matardibujo)之后,我也没有回忆。即使它增长。所以我认为擦除部分是在这里搞乱的部分。

我会帮助你,我在这方面有点新意。谢谢:)。

1 个答案:

答案 0 :(得分:1)

您是否可以使用以下代码行替换dibujo.image = [UIImage imageNamed:@"pixelde2po2.png"];以查看它是否可以解决您的问题?

NSString *fileName = [[NSBundle mainBundle] pathForResource:@"pixelde2po2" ofType:@"png"];
UIImage *image = [UIImage imageWithContentsOfFile:fileName];