2012-07-02 18 views
5

Bu hatayı alıyorum: [NSMutableArray objectAtIndex:]: index 0 beyond bounds for empty array Veritabanımda 75 öğe var. Bana bu hatayı neden gösteriyor? Benim veritabanından öğeleri almaya çalışıyorum ama bana endeksi 0.[NSMutableArray objectAtIndex:]: boş dizinin sınırlarının ötesindeki dizin 0 '

+(NSMutableArray *)GetAttitudeItems 
{ 
    NSArray *arrDocPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *strDestPath = [NSString stringWithFormat:@"%@/ItemsAndCategory.sqlite",[arrDocPath objectAtIndex:0]]; 


//sqlite3 *sqlite; 

NSMutableArray *arrItemsList; 
if(sqlite3_open([strDestPath UTF8String],&database)==SQLITE_OK) 
{ 

    const char *strQuery = "SELECT * FROM Items WHERE CategoryName='ATTITUDE' ORDER BY RANDOM()"; 
    NSLog(@"The value is %s",strQuery); 
    sqlite3_stmt *stmt; 
    //char *err; 

    arrItemsList = [[NSMutableArray alloc]init]; 

    if(sqlite3_prepare_v2(database, strQuery , -1,&stmt, NULL)==SQLITE_OK) 
    { 
     while (sqlite3_step(stmt)==SQLITE_ROW) 
     { 

      NSString *StrCatename = [NSString stringWithUTF8String:(char*)sqlite3_column_text(stmt, 1)]; 
      NSString *StrItemName = [NSString stringWithUTF8String:(char*)sqlite3_column_text(stmt, 0)]; 

      Itemslist *itemlist = [[Itemslist alloc]init]; 
      itemlist.CategoryValue = StrCatename; 
      itemlist.ItemValue =StrItemName; 
      [arrItemsList addObject:itemlist]; 

     } 

    } 

    if (stmt!=nil) 
    { 
     sqlite3_finalize(stmt); 
    } 
} 



sqlite3_close(database); 

return arrItemsList; 

} Eğer DB çağrıları veri döndürmesi gerektiğini eminseniz

+0

ArrAlert boş ya da değil mi? –

+0

kontrol [arrItemsList Count]; – Deepesh

cevap

2

, emin kılacak söyler en az biri if() else() ifadeleriniz gerçekten vuruluyor. (Kendiniz ifelse zincirinin en altında bir else deyimi ekleyin ve orada bir şey iddia etmek olurdu kontrol etmek

NSMutableArray *arrAlert = [[NSMutableArray alloc]init];

Basit bir şekilde: Aksi takdirde, dizi bunu yukarıdan başlatıldı göz önüne alındığında boş en azından yeni başlayanlar için bir şey yazdırın.)

+0

ok. Aslında bu uygulama ilk anda iyi çalışır, aniden bu hatayı alıyorum ... – user1482192

+0

Ya başka bir kısmı iyi çalışıyor ... – user1482192

İlgili konular