2011-01-25 75 views
0

我正在编写一个使用SQLITE3的应用程序。我使用位于二维数组(矩阵)中的值填充数组。当我这样做,我得到断言错误,我想不通为什么:Cocoa Touch:填充2D数组的问题

ViewController.h

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

ViewController.m

在指数矩阵填充数组1 [i] [j] ,其值为矩阵1 [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语句上。

+0

请编辑您的问题以添加更多信息。包括你的INSERT/REPLACE语句代码,添加你得到的实际错误等等。 – 2011-01-25 04:50:29

回答

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循环完全无关。