I have this code
-(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");
}
and i get this log report, when I type into the text field ‘s,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] Log First Letter of array: s
2010-01-15 15:50:35.399 Flash![39290:207] Letters:2
2010-01-15 15:50:35.400 Flash![39290:207] loopedy Loop
2010-01-15 15:50:35.400 Flash![39290:207] letter String : s
2010-01-15 15:50:35.401 Flash![39290:207] loopedy Loop
2010-01-15 15:50:35.401 Flash![39290:207] letter String : a
2010-01-15 15:50:35.402 Flash![39290:207] loopedy Loop
2010-01-15 15:50:35.402 Flash![39290:207] letter String : m
2010-01-15 15:50:35.404 Flash![39290:207] loopedy Loop
2010-01-15 15:50:35.405 Flash![39290:207] * Terminating app due to uncaught exception ‘NSRangeException’, reason: ‘* -[NSCFArray objectAtIndex:]: index (3) beyond bounds (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
)
and I have no idea what I am doing wrong, so any help is appreciated.
Cheers, Sam
You never decrement
runLoopTimesinside the loop. So it will loop indefinitely. And eventuallyindexTimesis off the end of the array.