我正在开发一个测验应用程序。我从 xml 文件中提取问题,解析它并显示随机问题。这些存储在 NSdictionary 和 NSMutableArray 中。该应用程序还播放背景音乐和点击按钮的声音(AVAudioPlayer)。和振动(AudioServicesPlaySystemSound(kSystemSoundID_Vibrate))
在一个特定的函数中,如果我尝试释放我使用的临时变量(IE NSDictionary 和 NSMutableArray),应用程序会在我第二次到达该函数时崩溃。因此,如果我不释放这些,它可以正常工作,但最终会因“EXC_BAD_ACCESS”错误而崩溃。它没有指出任何行或功能。
当我使用“LEAKS”工具时,它显示我有大约 7000 次泄漏。我不明白如何使用该工具,但我确信我没有创建这么多变量,只是一些变量,甚至是我发布的变量。
就在我得到错误“数据格式化程序暂时不可用”之后。
任何想法我做错了什么?F1 :)
PS:我的代码都是简单的东西,加上我不知道问题是什么,因此我不知道在这里发布什么代码?另外我想知道我是否在函数中创建一个 NSString* 以供临时使用,我应该在函数结束时释放它吗?(我确实释放它)编辑:
-(void) loadQuestion
{
strCorrectAnswer = @"";
int intQuestionNo;
NSString *strQuestionNo = [[NSString alloc] init];
// get random question out the xml file
NSDictionary *dctQue = [dctQuestions objectForKey:strQuestionNo];
// blah blah
// jumble the answers to be displaed
NSMutableArray *answerJumble = [[NSMutableArray alloc] init];
NSMutableArray *answers =[NSMutableArray arrayWithObjects:[dctQue objectForKey:@"WrongAnswer1"],[dctQue objectForKey:@"WrongAnswer2"],[dctQue objectForKey:@"WrongAnswer3"],[dctQue objectForKey:@"CorrectAnswer"],nil];
// blah blah
/*
[strQuestionNo release];
[answers release];
[answerJumble release]; */
}