Objective-C - цикл воспроизводится, но условие цикла неверно - PullRequest
0 голосов
/ 15 января 2011

Я пытаюсь преобразовать секционную таблицу в плоский список с помощью этой функции в didSelectRowAtIndexPath (у меня есть NSArray, который инициализируется с количеством элементов, содержащихся в каждом разделе):

Где-то ... :-)

self.sectionsArray = [NSArray arrayWithObjects:macroIntNumber(1), macroIntNumber(3), macroIntNumber(12), nil];

затем в didSelectRowAtIndexPath:

 int selectedRow = 0;
 int a = indexPath.section;

 for (int i=0; i<indexPath.section-1; i++) {
  selectedRow += [[self.sectionsArray objectAtIndex:i] intValue];
 }
 selectedRow += indexPath.row;

Но ... Это происходит сбой при indexPath.section = 0 (первый раздел). Потому что цикл воспроизводится бесконечно до сбоя вызова NSArray ... Странно !!!

заставляет for (int i=0; i<0-1; i++) { работает

заставляет for (int i=0; i<a-1; i++) { работает

Чего мне не хватает?

1 Ответ

4 голосов
/ 15 января 2011

section - это NSUInteger, поэтому он не подписан. Таким образом, вычитая 1 из 0 для этого целого числа без знака, вы получите очень большое число, а не -1. ​​

Работает при использовании a, потому что вы объявили a как int. :)

...