得到堆栈错误,原因不明

时间:2010-01-15 02:54:31

标签: iphone

我有这段代码

-(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号文件     )

我不知道我做错了什么,所以感谢任何帮助。

干杯,山姆

1 个答案:

答案 0 :(得分:0)

你永远不会在循环内减少runLoopTimes。所以它会无限循环。最终indexTimes不在数组的末尾。