0
//NsMutableArray 
//Received memory warning, while using  animations in UIImageview like; 
self.imageArray = [[NSMutableArray alloc] initWithCapacity:IMAGE_COUNT];

// Build array of images, cycling through image names
if (![self.imageArray count]>0) {
    for (int i = 0; i < IMAGE_COUNT; i++){
        if (i<10) {
         [self.imageArray addObject:[UIImage imageNamed:[NSString stringWithFormat:@"image000%d.jpg", i]]];

        }else {

         [self.imageArray addObject:[UIImage imageNamed:[NSString stringWithFormat:@"image00%d.jpg", i]]];

        }
    }
}   

/////Received memory warning, while using  animations in UIImageview
self.animatedImages.animationImages = [NSArray arrayWithArray:self.imageArray];
[self.imageArray release];
self.imageArray=nil;

// One cycle through all the images takes 1.5 seconds
self.animatedImages.animationDuration = 0.8;
// Repeat forever
self.animatedImages.animationRepeatCount = -1;
[self.animatedImages startAnimating];
4

1 回答 1

1

代替

[UIImage imageNamed:[NSString stringWithFormat:@"image000%d.jpg", i]]

[UIImage imageWithData:[NSData dataWithContentsOfFile:[[NSBundle mainBundle]pathForResource:[NSString stringWithFormat:@"image000%d.jpg", i] ofType:nil]]];

因为 API imageNamed: 在内存中缓存数据。

于 2012-01-20T12:20:05.457 回答