我正在制作一个简单的绘图应用程序,但是A内存有问题。几分钟使用后,它崩溃了,它使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)之后,我也不会收回记忆。甚至它都会成长。因此,我认为擦除部分是在这里搞砸的部分。
我会在您的帮助下,这是新的。谢谢:)。
您可以用以下代码替换dibujo.image = [UIImage imageNamed:@"pixelde2po2.png"];
,以查看它是否解决了您的问题?
NSString *fileName = [[NSBundle mainBundle] pathForResource:@"pixelde2po2" ofType:@"png"];
UIImage *image = [UIImage imageWithContentsOfFile:fileName];