Последний элемент в UITableView недоступен с textLabel.text

Я заполняю UITableView массивом элементов, которые я извлекаю из паутины.

Рассматриваемый код выбирает элемент из списка, заполненного массивом из паутины, а затем отправляет запрос обратно в другую таблицу php script->sql и т. Д. На основе выбранного элемента. У меня проблема в том, что весь список заполняется правильно, но при использовании последнего элемента в списке / табличном представлении array.textLabel.text, по-видимому,.. не существует. Все отсылает нормально, но этот последний элемент (не имеет значения, сколько элементов у меня есть в массиве, только самый последний не остается... остался или что-то в этом роде), и он ничего не выбирает.

Затем при отправке 2-го запроса он выдает мне ошибку out of bounds, потому что последний элемент не существует, и он говорит, что я пытаюсь получить что-то, чего нет.

* Завершение работы приложения из-за неперехваченного исключения "NSRangeException", причина: '* - [NSArray objectAtIndex:]: индекс 1 за пределами [0 .. 0]'

Вот как он делает массив, который он использует для заполнения:

NSArray *listItems = [parsedOutput componentsSeparatedByString:@","];
restList = [[NSArray alloc] initWithArray:listItems];

количество строк основано на [restList count]; и т. д. и для вызова текста, который я использую:

restName = [tableView cellForRowAtIndexPath:indexPath];
sendName = restName.textLabel.text;

Любая идея, почему самый последний элемент, кажется, не существует, хотя его список и выбираемый?

1 ответ

Ошибка говорит вам, что именно происходит. Вы пытаетесь получить доступ к индексу, который находится за пределами массива. Таким образом, либо вы обращаетесь к неверному массиву, либо к 1 после фактического конца массива. Попробуйте NSLog массив непосредственно перед строкой, в которой появляется ошибка, и посмотрите, действительно ли в ней есть правильные элементы, а также выходной index.row, к которому вы пытаетесь получить доступ, имея в виду, что массивы имеют нулевую индексацию.

Другие вопросы по тегам