2011-01-25 101 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循環完全無關。