Objective c Cocoa Touch:填充2D阵列时出现问题

Objective c Cocoa Touch:填充2D阵列时出现问题,objective-c,cocoa-touch,xcode,Objective C,Cocoa Touch,Xcode,我正在编写一个使用SQLITE3的应用程序。我用一个位于二维数组(矩阵)中的值填充数组。当我这样做时,我得到一个断言错误,我无法找出原因: ViewController.h matrix1 [25][1000]; array1 [2000]; ViewController.m 用矩阵1[i][j]中的值填充索引矩阵[i][j]中的数组1 for(int i = 0; i<1000; i++){ for(int j = 0;j<25; j++) { array

我正在编写一个使用SQLITE3的应用程序。我用一个位于二维数组(矩阵)中的值填充数组。当我这样做时,我得到一个断言错误,我无法找出原因:

ViewController.h

    matrix1 [25][1000];
    array1 [2000];
ViewController.m

用矩阵1[i][j]中的值填充索引矩阵[i][j]中的数组1

for(int i = 0; i<1000; i++){
for(int j = 0;j<25; j++)
 {
   array1[matrix1[matrix1[i][j]];
 }
}

  ...


if(sqlite3_exec(pb_database,[pb_update_string UTF8String]
              ,NULL,NULL,&errormsg)!= SQLITE_OK) {
   NSAssert1(0, @"Error updating tables: ==> %s <==", errormsg);
   sqlite3_free(errormsg);
   NSLog(@"line not update");
}

对于(int i=0;i您有几个问题:

  • 您正在直接使用SQLite C API。除非有很好的理由,否则不要这样做。这将使您的生活更加轻松
  • 您的数组大小不同。一个包含25000个元素(25*1000),另一个包含2000个元素
  • 你的
    for
    循环没有任何作用。
    array1[matrix1[matrix1[i][j];
    不仅在语法上不正确(你缺少一个结束方括号),而且没有任何作用
  • SQLite代码与
    for
    循环完全无关

  • 请编辑您的问题以添加更多信息。包括您的INSERT/REPLACE语句代码,添加您得到的实际错误,等等。伙计,您需要反转for循环中的i和j。否则,它将为您提供EXC_BAD_访问权限。您到底想用这条语句做些什么;我将添加我得到的错误。我将使用从URL接收的值加载数组。我将值加载到2D数组中。我将从位于X、Y位置的2D数组中获取值,并且对于每次出现值Z,我将使用该值填充索引Z处的数组1。我认为我示例中的索引可能是向后的,只是t在我之前输入。错误为:2011-01-24 23:18:01.904 BallPower[23068:207]***由于未捕获的异常“NSInternalInconsistencException”而终止应用程序,原因:“更新表时出错:===>(null)