我正在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 ;
}
谢谢..任何帮助将不胜感激.. !!
答案 0 :(得分:0)
您似乎没有在任何地方发布avBtn1对象,并且每次调用checkAnswer时都要分配一个新对象。这是在代码中的其他地方处理的吗?