Ошибка получения стека, необъяснимо - PullRequest
0 голосов
/ 15 января 2010

У меня есть этот код

-(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");


}

и я получаю этот отчет журнала, когда набираю в текстовое поле 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] Записать первую букву массива: s 2010-01-15 15: 50: 35.399 Flash! [39290: 207] Письма: 2 2010-01-15 15: 50: 35.400 Flash! [39290: 207] Loopy Loop 2010-01-15 15: 50: 35.400 Flash! [39290: 207] Строка букв: s 2010-01-15 15: 50: 35.401 Flash! [39290: 207] Loopy Loop 2010-01-15 15: 50: 35.401 Flash! [39290: 207] Строка букв: a 2010-01-15 15: 50: 35.402 Flash! [39290: 207] Loopy Loop 2010-01-15 15: 50: 35.402 Флэш! [39290: 207] Строка букв: m 2010-01-15 15: 50: 35.404 Flash! [39290: 207] Loopy Loop 2010-01-15 15: 50: 35.405 Flash! [39290: 207] * Завершение работы приложения из-за необработанного исключения 'NSRangeException', причина: '* - [NSCFArray objectAtIndex:]: index (3) за пределами границы (3) ' 2010-01-15 15: 50: 35.406 Флэш! [39290: 207] Стек: ( 29287515, 2538743049, 29371451, 29371290, 478409, 74279, 9945, 2716761, 3124130, 3132867, 3128079, 2821683, 2730012, 2756789, 37383889, 29072256, 29068360, 37377933, 37378130, 2760707, 9228, 9082 )

и я понятия не имею, что я делаю неправильно, поэтому любая помощь приветствуется.

Приветствия, Сэм

1 Ответ

0 голосов
/ 15 января 2010

Вы никогда не уменьшаете runLoopTimes внутри цикла. Так что это будет бесконечно. И в конечном итоге indexTimes находится вне конца массива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...