Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 尝试使用从sql+;检索的数据填充表视图控制器时发生异常;nsrange异常';_Ios_Sqlite_Ios6 - Fatal编程技术网

Ios 尝试使用从sql+;检索的数据填充表视图控制器时发生异常;nsrange异常';

Ios 尝试使用从sql+;检索的数据填充表视图控制器时发生异常;nsrange异常';,ios,sqlite,ios6,Ios,Sqlite,Ios6,我是iOS开发新手,我面临着一个奇怪的问题(因为表视图控制器和sql类中的相同代码在其他实体中工作得非常好) 我正在尝试将数据从sqlite数据库检索到我的表视图控制器 当我尝试在数据库中插入多条记录时,会出现此错误。 2012-11-10 19:04:20.577我的应用程序[7032:11303]*由于未捕获的异常“NSRangeException”而终止应用程序,原因:“*-[\uu NSArrayI objectAtIndex:]:索引1超出边界[0..0]” *第一次抛出调用堆栈: 任

我是iOS开发新手,我面临着一个奇怪的问题(因为表视图控制器和sql类中的相同代码在其他实体中工作得非常好)

我正在尝试将数据从sqlite数据库检索到我的表视图控制器

当我尝试在数据库中插入多条记录时,会出现此错误。
2012-11-10 19:04:20.577我的应用程序[7032:11303]*由于未捕获的异常“NSRangeException”而终止应用程序,原因:“*-[\uu NSArrayI objectAtIndex:]:索引1超出边界[0..0]” *第一次抛出调用堆栈:

任何帮助都将不胜感激。 谢谢。



我认为这可能是因为您正在使用:

[self.myCategoryArray count];
numberofrowsin节中
但是:

[ops.categoryArray objectAtIndex:indexPath.row];
cellforrowatinexpath


如果两个数组具有不同数量的对象,则会出现此问题。您通常对两个函数使用相同的数组,这样就不会发生这种情况。

您没有说明在所有代码中实际存在问题的地方,但我看到一个可能的问题。在
表视图:numberofrowsin节:
方法中,返回:

[self.myCategoryArray count];
但是,在您调用的
表视图:cellforrowatinexpath:
方法中:

Category * categoryObj = [ops.categoryArray objectAtIndex:indexPath.row];
这里使用的是两个不同的数组。这些数据应基于相同的数据


为便于将来参考,在发布此类问题时,请指出异常的确切来源,并仅发布相关代码。

问题在于我试图在数据库中插入多条记录。我想问一下,这两个数组是否有不同的数据。非常感谢你,我不知道你刚才说了什么。表视图的数据源应来自一组数据。这里使用的是两个不同的数组。它们必须是相同的数组。例如,如果
self.myCategoryArray
有10个对象,那么表视图将要求10个单元格。如果
ops.categoryArray
的对象少于10个,它将崩溃。两种方法使用相同的数组。很抱歉打扰您。。但是在视图中,这里的2语句是否表示这两个数组具有相同的数据,对吗?[ops selectCategories];myCategoryArray=[ops categoryArray];。。我对这两种方法使用了相同的数组,问题仍然存在。我知道我问了很多问题,但是我怎么知道哪行代码会导致这个问题呢。。非常感谢..使用调试器运行应用程序。当它崩溃时,调试器将显示一个堆栈跟踪,显示代码的确切路径。从堆栈跟踪的顶部开始,找到您自己代码的第一个引用。这就是它在代码中崩溃的地方。现在我看到这两个数组是相同的。那太令人困惑了。在两种不同的数据源方法中引用这两个数组更容易混淆。使用一个或另一个。您编辑的问题仍然无法指出导致异常的代码行。
[self.myCategoryArray count];
Category * categoryObj = [ops.categoryArray objectAtIndex:indexPath.row];