我正在数据库中处理基于sqlite的应用程序,其中索引2处有一个字段。
在此我没有保存任何数据,但是当我在Firefox上运行该数据库时,我看到索引2的值为-2147483648,当我尝试在子视图中添加新单元格时:
return [appDelegate.items count]+1;
我收到此错误:
由于未捕获的异常'NSRangeException'而终止应用程序,原因:'*** - [NSCFArray objectAtIndex:]:index(2)超出边界(2)'
索引2处的变量是十进制类型: -
NSInteger n = i.need;
和...
sqlite3_bind_int(updStmt, 2, n);
...是索引2中的默认值。这是否必须对异常执行任何操作?如果是,我怎么能纠正它,如果不是,那为什么会发生呢?
答案 0 :(得分:0)
我认为您在插入或阅读时使用的是访问说明符%@
而不是%d
...
使用 intValue 进行重新搜索或插入。