临时释放内存

时间:2011-08-17 11:15:50

标签: iphone memory-management memory-leaks xcode4

我正在iPhone中创建一个测验应用 因此,我一次使用这么多标签和按钮 如果我在一个问题之后立即释放它们,则应用程序停止 如果我没有这样做并在dealloc函数释放它们,那么它会显示内存警告和应用程序崩溃。 我正在使用此代码

received memory warning. level 1

如果我设置了大约20个问题,那么应用程序不会崩溃,但如果我添加更多问题,那么它会崩溃..
我认为这是分配内存而不是在一个问题后立即发布。

请帮帮我:(

编辑:
我在选择答案后使用此代码

-(void)checkAnswer:(int)theAnswerValue
{   
[AVback stop];
[scrollview scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO]; 
[Challengetext setHidden:YES];
[theScore setHidden:YES];
[theQuestion setHidden:NO];
[Question setHidden:YES];  
if(rightAnswer == theAnswerValue)
{
    NSString *AVpath = [[NSBundle mainBundle] pathForResource:@"Winner_1" ofType:@"m4a"];
    AVAudioPlayer *AVbtn1 = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:AVpath] error:NULL];


    [img1 setHidden:NO];
    [img2 setHidden:YES];
    [theQuestion setFont:[UIFont fontWithName:@"Futura" size:30]];
    theQuestion.textColor = [UIColor purpleColor];
    theQuestion.text = @"\n\nCorrect Answer!!";
    [rightans setHidden:NO];
    [Description setHidden:NO];
    [ContainerView setHidden:NO];
    myScore = myScore + 50;
}
else
{

    NSString *AVpath = [[NSBundle mainBundle] pathForResource:@"incorrect2" ofType:@"m4a"];
    AVAudioPlayer *AVbtn1 = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:AVpath] error:NULL];
    QuizAppUniversalAppDelegate *appDelegate = (QuizAppUniversalAppDelegate *) [[UIApplication sharedApplication] delegate];
    if(appDelegate.soundIndicator == 0){
        [AVbtn1 play];

    }
    else{
        [AVback stop];
        [AVstart stop];
        [AVbtn1 stop];
    }

    [img2 setHidden:NO];
    [img1 setHidden:YES];
    [theQuestion setFont:[UIFont fontWithName:@"Futura" size:30]];
    theQuestion.textColor = [UIColor redColor];
    theQuestion.text = @"\nIncorrect Answer!!\nRight answer is : \n ";
    [rightans setHidden:NO]; 
    [Description setHidden:NO];
    [ContainerView setHidden:NO];
    myScore = myScore ;

}

谢谢..任何帮助将不胜感激.. !!

1 个答案:

答案 0 :(得分:0)

您似乎没有在任何地方发布avBtn1对象,并且每次调用checkAnswer时都要分配一个新对象。这是在代码中的其他地方处理的吗?