Removing UIImageView and getting the memory back (my memory is leaking)

I am making a simple drawing application, but a have problems with memory. After a few minutes using it, it just collapse, it makes the iPad very slow.

The lines the user create drawing are made of a UIImageView of 2x2 pixel, so it's this UIImageView is created several times:

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

And it's being erased in this way:

    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];
}

}

Even after erasing de draw (matardibujo) i don't get the memory back. Even it grows. So i think the erasing part is the one that's messing here.

I would preciate your help, i'm kind of new in this. Thanks :).

Upvotes: 0

Views: 356

Answers (1)

Jason Huh
Jason Huh

Reputation: 147

Could you replace dibujo.image = [UIImage imageNamed:@"pixelde2po2.png"]; with the following line of code to see if it resolves your issue?

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

Upvotes: 1

Related Questions