我正在使用从interwebs检索的项目数组填充UITableView。
有问题的代码从interwebs中的数组中填充的列表中选择一个项目,然后根据所选项目将请求发送回不同的php脚本 - > sql表等。我遇到的问题是整个列表正确填充,但是当使用list / tableview中的最后一项时,array.textLabel.text显然是..不存在的。一切都发送得很好,但是这最后一项(无论我在阵列中有多少项目,最后一项只是没有...保留或其他东西)并且它什么都不选。
然后在发送第二个请求时,它给了我一个越界错误,因为最后一个项目不存在,它说我试图拉出不存在的东西。
*由于未捕获的异常'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;
任何想法为什么最后一个元素似乎不存在,即使它的列表和可选择?
答案 0 :(得分:0)
错误告诉您究竟发生了什么。您正在尝试访问超出数组范围的索引。因此要么您正在访问错误的数组,要么您正在访问数组的实际末尾1。尝试在错误出现之前的NSLog数组,看看它是否确实包含正确的元素以及输出index.row你试图访问,记住数组是零索引。