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

#iphone #uitableview #textlabel

#iPhone #uitableview #textlabel

Вопрос:

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

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

Затем при отправке 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 после фактического конца массива. Попробуйте записать массив непосредственно перед строкой, в которой появляется ошибка, и посмотреть, действительно ли в нем есть нужные элементы, а также выходной индекс.строка, к которой вы пытаетесь получить доступ, имея в виду, что массивы проиндексированы с нулевым индексом.