我有这个代码:
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 程序员解释一下吗?