Hi every one here is my code:
-(void) createNewImage {
[imageView setCenter:[self randomPointSquare]];
[[self view] addSubview:imageView];
[views addObject:imageView];
[imageView release];
ix=imageView.center.x;
iy=imageView.center.y;
[XArray addObject:[NSNumber numberWithFloat:(240 - ix)/diviseurVitesse]];
[YArray addObject:[NSNumber numberWithFloat:(160 - iy)/diviseurVitesse]];
}
-(void)moveTheImage{
for (NSUInteger i = 0; i < [views count]; i++) {
imageView = [views objectAtIndex:i];
X = [[XArray objectAtIndex:i] floatValue];
Y = [[YArray objectAtIndex:i] floatValue];
imageView.center=CGPointMake(imageView.center.x + X, imageView.center.y + Y);
} With this code, image are created and move to the center of the screen but after some seconds the performance decrease and come to 30fps. I would like to keep fps at 60 but I don't know how to proceed.Some people say that I can use pool but it's hard for me to use it because I don't really know how to use it :/ sorry for my english I'm french :/
Your problem is here - [views addObject:imageView];. Adding object to a persistent dataset like NSMutableArray retains the object, so memory consumption actually grows. Try manipulating your images in [self.view subviews] without storing them in array.
ReplyDelete