クイズアプリを開発しています。xml ファイルから質問を取得して解析し、ランダムな質問を表示します。これらは NSdictionary と NSMutableArray に保存されます。また、アプリはボタンをクリックするためのBGMとサウンドを再生します(AVAudioPlayer)。振動( AudioServicesPlaySystemSound(kSystemSoundID_Vibrate))
ある特定の関数で、使用している一時変数 (IE NSDictionary および NSMutableArray) を解放しようとすると、2 回目にその関数に到達したときにアプリがクラッシュします。したがって、これらを解放しないと正常に動作しますが、最終的に「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]; */
}