带图像的70MB内存和18个ViewControllers sdk

时间:2012-03-09 12:24:31

标签: iphone memory-management sdk uiimageview viewcontroller

我正在开发一个像图画和动作的书一样的应用程序。我有18个视图,每个视图更真实的内存(最大70MB)。

使用此代码进行开发的图片:

fonsImatge = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"fons_pis.png", 0] ofType:nil]]];
    [fonsImatge setFrame:CGRectMake(0, 0, 1024, 768)];
    fonsImatge.alpha = 1.0f;
    //[UIView commitAnimations];
    [self.view insertSubview:fonsImatge atIndex:0];
    [fonsImatge release];


letra_a = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"lletra_a_01.png"]];
    [letra_a setFrame:CGRectMake(406, 114, 270, 318)];
    [self.view insertSubview:letra_a atIndex:2];
    [letra_a release];  
    letra_a.alpha = 0.0;
    letra_a.animationImages = [NSArray arrayWithObjects:    
                               [UIImage imageNamed:@"lletra_a_01.png"],
                               [UIImage imageNamed:@"lletra_a_02.png"],nil];
    letra_a.animationDuration = 5.00;
    letra_a.animationRepeatCount = 1000;
    [letra_a startAnimating];

下一个观点:

proj_lletrac_fosca *viewController = [[proj_lletrac_fosca alloc] init];
    [self presentViewController:viewController animated:NO completion:nil];
    [viewController release];


- (void)viewDidUnload {
    self.fonsSemi=nil;
    self.fletra_a=nil;
}

如何删除上一个视图的内存?

感谢!!!!

1 个答案:

答案 0 :(得分:1)

简而言之,您没有明确地这样做。您应该在所有视图控制器中实现viewDidUnload并释放可以在viewDidLoad中再次创建的任何内容。然后UIKit将做正确的事情并卸载当内存不稳定时不在屏幕上的视图。