Cocoa Touch:无法填充2D数组

时间:2011-01-25 04:45:15

标签: objective-c cocoa-touch xcode

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

ViewController.h

    matrix1 [25][1000];
    array1 [2000];

ViewController.m

在索引矩阵[i] [j]处填充array1,其值为matrix1 [i] [j]

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");
}

错误总是在INSERT / REPLACE语句中。

1 个答案:

答案 0 :(得分:1)

你有几个问题:

  1. 您直接使用SQLite C API。除非你有充分的理由,否则不要这样做。 Use FMDB instead。它会让你的生活更轻松
  2. 您的阵列大小不同。一个包含25,000个元素(25 * 1000),另一个包含2,000个元素。
  3. 您的for循环什么都不做。 array1[matrix1[matrix1[i][j]];不仅在语法上不正确(你错过了一个结束的方括号),但它不会任何事情。
  4. 您的SQLite代码与您的for循环完全无关。