XCode6报数组越界错误的问题

今天碰到一个很奇葩的问题, 调试了半天:

错误:“index 0 beyond bounds for empty array”,  意思就是说数据源数组为nil, 所以你调用直接取值自然就报错.

我叙述下我的场景:

1. 在UITaleView中创建cell, 数据源dataArray是存在并且数量为10, 然后我是[dataArray objectAtIndexindexPath.row]来取值作为cell的数据, 当然numberOfRowsAtIndexPath里面是返回dataArray.count.

2. 一切都看似那么无懈可击, 正当我划动tableView, 每次到indexPath.row = 7的时候就会crash, 然后报上述的错误: 空数组, 但是我反复调试发现数组并不是空的, 而且在indexPath.row=7的时候必crash.

3. 百思不得其解, 求助google, 在stackoverflow找到有人说: “restart your xcode”, 然后照做了, 问题解决了!你敢信, 不会crash了!我晕!

总结:或许这只是xcode的一个bug,  如果有人知道具体原因, 望告知.

时间: 2024-10-11 06:43:16

XCode6报数组越界错误的问题的相关文章

weblogic 10.3不能启动报数组越界

今天一个weblogic服务启动到一半报错,这个错误一看就是weblogic内部的错误: <BEA-000386> <Server subsystem failed. Reason: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.RangeCheck(ArrayList.

ScriptEngine执行复杂js报数组越界

import javax.script.Invocable; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; /** * @Author: SimonHu * @Date: 2019/2/12 11:13 * @Description: */ public class Test { public static void m

qRCodeEncoder.Encode 数组越界

从网上下载ThoughtWorks.QRCode.dll解压发现有很多版本,果断选择最新版 生成二维码的代码 private Bitmap GetCode(string code) { QRCodeEncoder qRCodeEncoder = new QRCodeEncoder(); //设置二维码编码格式 qRCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; //设置编码测量度 qRCodeEncoder.QRCod

listview添加头部view问题,数组越界问题

发现在开发中如果用下面的函数,在开发中会遇到一些问题,一个自选基金的管理界面是个listview,点击修改进入下一个界面,然后返回再去点击删除对应行,就会报数组越界, 应该是返回后listview发生了变化,可能和header有关系,换成一个参数的就没有了问题. lv.addHeaderView(headerView, , ); 版权声明:本文为博主原创文章,未经博主允许不得转载.

QRCode 数组越界异常

因为需求的缘故需要解析出ios二维码的地址,把解析的地址传到按钮上 把功能写好之后用几张二维码测试没问题后提交到svn上,第二天生产环境正好发版,发现有个应用的按钮点了一直没反应,看了下控制台发现报错 居然是数组越界...纠结了好久.最后点到那个二维码看看有什么特别之处 一切尽在无言中(我擦...居然是1000多像素的二维码,你逗我呢)...

谨防数组越界!

今天第一次对数组越界问题有了深切的感受,数组越界如果在Release版本中运行也不会报错,如果是Debug版本的话,若直接通过常量数值引用数组下标会被检测到数组越界,若通过变量引用数组下标也是不会被检测到的!!! 测试下面的代码, 1 #include <stdio.h> 2 3 int main(void) 4 { 5 int arr[1][1] = {20}, brr[1] = {1}, y = 5; 6 7 //printf("%d\n", arr[5][0] ==

数组越界

1. 找出下列代码的错误 void test() { char string[10]; char *str="0123456789"; strcpy(string,str); }字符串str需要11个字节才能存放下(包括末尾的'\0'),而string只有10个字节的空间:strcpy会导致数组越界. void test() { char string[10]; char str[10]; int i; for(int i=0; i<10; i++) { str[i]='a';

iOS 数组越界 Crash处理经验

我们先来看看有可能会出现的数组越界Crash的地方: - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { WelfareItem *item = [_datasourceArray objectAtIndex:indexPath.row];//有可能会越界,你在下拉刷新时会用[_datasourceArray removeAllObjects],这时你又点了某个

ListView 适配器实现getviewtypcount() 数组越界IndexOutOfBoundException

ListView中Item的多布局显示,需要用到了getViewTypecount和getItemViewType这两个重写方法,但是做完后出现了如下提示错误:java.lang.ArrayIndexOutOfBoundsException: (数组越界) 原因:居然是getItemViewType这里里面返回的Type必须是从0开始的,如果getviewtypecount等于2,那么getItemViewType返回的数值是从0~1的常数.简单说,在刚开始设置type常量时,是从0开始递增的,