我正在开发一个测验应用。我从xml文件中提问,解析它并显示随机问题。它们存储在NSdictionary和NSMutableArray中。此外,该应用程序播放背景音乐和声音单击按钮(AVAudioPlayer)。和振动(AudioServicesPlaySystemSound(kSystemSoundID_Vibrate))
在一个特定的函数中,如果我尝试释放我使用的临时变量(I.E 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]; */
}
答案 0 :(得分:0)
您应该在Cocoa中阅读有关内存管理的内容。请参阅Mac Developer Center或tutorial at Cocoa Dev Central。 iPhone上的内存管理并不难,通过反复试验进行编码是很可惜的。
答案 1 :(得分:0)
如果我在6425的泄漏后两次使用该应用程序wud崩溃。因此ERROR-“数据格式化程序当前不可用”。(我猜)