を見に問題を見つけるために助けが必要:プログラムのクラッシュ、私がクラッシュする前に、次のメッセージを取得しています少なくとも
2011-01-02 00:55:15.935 XXXX[7981:207] answerButton1
2011-01-02 00:55:15.938 XXXX[7981:207] >>>>>>>>>>>>>>>>>>>>nrQPlayer: 2
2011-01-02 00:55:15.939 XXXX[7981:207] =========whatPlayerCount===========
2011-01-02 00:55:15.939 XXXX[7981:207] ==whatPlayerCount== 1
2011-01-02 00:55:15.940 XXXX[7981:207] =========Spelare 1===========
2011-01-02 00:55:15.940 XXXX[7981:207] oooooooEND OF PLAYER!oooooooooo
2011-01-02 00:55:15.941 XXXX[7981:207] ooooooooooBEFORE IFooooooooooo
2011-01-02 00:55:15.942 XXXX[7981:207] INIT 0x5b9be30
2011-01-02 00:55:16.563 XXXX to be able to fix it[7981:207] *** -[ErrorMessage respondsToSelector:]: message sent to deallocated instance 0xca25ff0
私は場所を正確に問題を追跡しようとしている、「テストしようとしていますいくつかの場所では保持していますが、現在はオプションが多少不足しています。私はブレークポイントでデバッガを実行しようとするが、それは立ち往生し、私は前進することはできません。
可能な限りお手伝いします。
ケース2:私はここに
:-)状況を改善することクラッシュコードの一部ですしない、また、この時にはかなり新しいです// 2人のプレイヤー
//nrQPlayer antal spelare
NSLog(@"=========whatPlayerCount===========");
NSLog(@"==whatPlayerCount== %i", whatPlayerCount);
switch (whatPlayerCount) {
case 1:
NSLog(@"=========Spelare 1===========");
playerDiff = 1;
whatPlayerCount = 2;
thePlayer = 0;
NSLog(@"oooooooEND OF PLAYER!oooooooooo");
break;
case 2:
NSLog(@"=========Spelare 2===========");
playerDiff = 3;
whatPlayerCount = 1;
thePlayer = 2;
break;
default:
NSLog(@"=========break===========");
break;
}
NSLog(@"ooooooooooBEFORE IFooooooooooo");
NSLog(@"INIT %p", self);
// >>>>>>>>HERE IS WHERE THE CRASH HAPPENS<<<<<<<<<<
if (askedQuestions < nrOfQuestionsPerPlayer) {
NSLog(@"1");
if ([[finalPlayersInGame objectAtIndex:playerDiff] intValue] == 1) { // HARD
NSLog(@"HARD 1");
questionNr = [[hardQArray objectAtIndex:askedQuestions] intValue];
qArray = [readQuestionFunction readQuestion: questionNr];
question_TextView.text = [qArray objectAtIndex:0];
NSLog(@"HARD - qNr: %i", questionNr);
}
else if ([[finalPlayersInGame objectAtIndex:playerDiff] intValue] == 2) { // MEDIUM
NSLog(@"2");
questionNr = [[mediumQArray objectAtIndex:askedQuestions] intValue];
qArray = [readQuestionFunction readQuestion: questionNr];
question_TextView.text = [qArray objectAtIndex:0];
NSLog(@"MEDIUM - qNr: %i", questionNr);
}
else if ([[finalPlayersInGame objectAtIndex:playerDiff] intValue] == 3) { // EASY
NSLog(@"3");
questionNr = [[easyQArray objectAtIndex:askedQuestions] intValue];
qArray = [readQuestionFunction readQuestion: questionNr];
NSLog(@"qArray: %@", qArray);
NSLog(@"questionNr: %i", questionNr);
question_TextView.text = [qArray objectAtIndex:0];
NSLog(@"EASY - qNr: %i", questionNr);
}
NSLog(@"ooooooooooAFTER IFooooooooooo");
NSLog(@"4");
playerName_Label.text = [NSString stringWithFormat:@"Spelare: %@", [finalPlayersInGame objectAtIndex:thePlayer]];
playerResult_Label.text = [NSString stringWithFormat:@"Fråga %i av %i", askedQuestions, nrOfQuestionsPerPlayer];
//========CALL AccesQuestionDB MODULE TO SHUFFLE PLAYERS=========//
AccessQuestionsDB *shufflePlayersFunction = [AccessQuestionsDB new];
buttonOrder = [[NSMutableArray alloc] initWithObjects:@"1", @"2", @"3", nil];
buttonOrder = [shufflePlayersFunction shufflePlayers: buttonOrder]; // Use shufflePlayers to shuffle button also
NSLog(@"buttonOrder: %@", buttonOrder);
[shufflePlayersFunction release];
NSLog(@"5");
//========CALL buttonsOrder=========//
ButtonOrderAccess *buttonOrderFunction = [ButtonOrderAccess new];
[buttonOrderFunction saveButtonOrder: buttonOrder];
[buttonOrderFunction release];
NSLog(@"qArray: %@", qArray);
NSLog(@"buttonOrder: %@", buttonOrder);
[self.answerButton1 setTitle:[qArray objectAtIndex:[[buttonOrder objectAtIndex:0]intValue]] forState:UIControlStateNormal];
[self.answerButton2 setTitle:[qArray objectAtIndex:[[buttonOrder objectAtIndex:1]intValue]] forState:UIControlStateNormal];
[self.answerButton3 setTitle:[qArray objectAtIndex:[[buttonOrder objectAtIndex:2]intValue]] forState:UIControlStateNormal];
if (firstQuestion == YES) {
firstQuestion = NO;
//secondQuestion = YES;
}
else {
askedQuestions++;
firstQuestion = YES;
}
}
else {
// Call Error Message
ErrorMessage *callErrorMessageFunction = [ErrorMessage new];
[callErrorMessageFunction questionError: @"Q2"];
[callErrorMessageFunction release];
}
:-(あなたにBIGおかげで、問題を見つけるカント、これが問題のようです私はこれらをコメントアウト機能とそれは働いた:-) – PeterK
@ PeterK素晴らしい、しかし、単に 'リリース'をコメントしないでください!少なくともそれを 'autorelease'に変更してください。それとも、メモリリークのためにここに戻って来るでしょう... – mvds