我有这段代码
-(IBAction) generateFlashNow:(id)sender{
[textField resignFirstResponder];
NSString *string1 = textField.text;
//NSString *string2 = [string1 stringByReplacingOccurrencesOfString:@"" withString:@","];
NSArray *arrayOfLetters = [string1 componentsSeparatedByString:@","];
NSLog(@"Log Array :%@", arrayOfLetters);
//NSArray *imageArray = [[NSArray alloc] init];
NSLog(@"Log First Letter of array: %@",[arrayOfLetters objectAtIndex:0]);
runLoopTimes = [arrayOfLetters count];
runLoopTimes = (runLoopTimes -1);
NSLog(@"Letters:%d", runLoopTimes);
int timesThroughLoop;
while (runLoopTimes > 0) {
NSLog(@"loopedy Loop");
NSString *LetterString = [NSString stringWithFormat:@"%@", [arrayOfLetters objectAtIndex:indexTimes]];
timesThroughLoop --;
NSLog(@"letter String : %@", LetterString);
indexTimes ++;
if (runLoopTimes == 0) {
return;
}
}
NSLog(@"done");
}
当我输入文本字段的时候,我得到这个日志报告,a,m'
[Session started at 2010-01-15 15:50:30 +1300.]
2010-01-15 15:50:35.398 Flash![39290:207] Log Array :(
s,
a,
m
) 2010-01-15 15:50:35.399 Flash![39290:207]记录数组的第一个字母:s 2010-01-15 15:50:35.399 Flash![39290:207]来信:2 2010-01-15 15:50:35.400 Flash![39290:207] loopedy Loop 2010-01-15 15:50:35.400 Flash![39290:207]字符串:s 2010-01-15 15:50:35.401 Flash![39290:207] loopedy Loop 2010-01-15 15:50:35.401 Flash![39290:207]字符串:a 2010-01-15 15:50:35.402 Flash![39290:207] loopedy Loop 2010-01-15 15:50:35.402 Flash![39290:207]字符串:m 2010-01-15 15:50:35.404 Flash![39290:207] loopedy Loop 2010-01-15 15:50:35.405 Flash![39290:207] *由于未捕获的异常'NSRangeException'终止应用程序,原因:'* - [NSCFArray objectAtIndex:]:index(3)超越界限(3)' 2010-01-15 15:50:35.406 Flash![39290:207] Stack :( 29287515, 2538743049, 29371451, 29371290, 478409, 74279, 9945, 2716761, 3124130, 3132867, 3128079, 2821683, 2730012, 2756789, 37383889, 29072256, 29068360, 37377933, 37378130, 2760707, 9228, 9082号文件 )
我不知道我做错了什么,所以感谢任何帮助。
干杯,山姆
答案 0 :(得分:0)
你永远不会在循环内减少runLoopTimes
。所以它会无限循环。最终indexTimes
不在数组的末尾。