私はこのコードを持っています:
while (!found) {
char letterGuess=(char)([[[wordList letterRank:lengthOfWord]objectAtIndex:yescount]intValue]+97);
NSString *stringLetter=[NSString stringWithFormat:@"%c",letterGuess];
if ([prevGuess count]<=0) {
alreadyGuessed=NO;
}else {
if ([prevGuess containsObject:stringLetter]) {
alreadyGuessed=YES;
yescount++;
}else{
alreadyGuessed=NO;
}
}
if (!alreadyGuessed) {
[prevGuess addObject:stringLetter];
[self drawYesNo];
NSLog(@"%c",letterGuess);
}
if (userAnswer) {
}else {
[self noGuess:letterGuess];
}
if ([wordList count]<=1) {
NSLog(@"word found");
found=YES;
}
}
基本的に、ソートされた配列から文字を取得し、以前に入力されたすべての文字を含む別の配列と照合し、その配列にない場合は [self drawYesNo] を呼び出します。 UIButton がなく、ユーザーが押した内容に基づいて、「userAnswer」変数が変更されます。
私の問題は、このループが非常に速く実行されるため、objectAtIndex がすぐに配列の境界を超えて、エラーがスローされることです。[drawYesNo] メソッドの実行中に一時停止し、ユーザーが実際に決定できるようにする方法が必要です。
StackOverflow に同様の質問への回答があることは知っていますが、それらの頭や尾を作ることはできません。誰かが非常に新しい OO プログラマーのためにこれを説明できますか?