2012-06-10 50 views
0

下面是我用來填充UITableView與sqlite數據庫中的列的內容的方法的代碼。但是,這在運行時沒有提供任何錯誤,但仍然不會在UITableView中提供任何數據。如果有人可以幫助,它將不勝感激。UITableView沒有得到填充sqlite數據庫列

- (void)viewDidLoad{ 
    [super viewDidLoad]; 
    self.title = @"Strings List"; 
    UITableViewCell *cell; 
    NSString *docsDir; 
    NSArray *dirPaths; 
    sqlite3_stmt *statement; 
    // Get the documents directory 
    dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 

    docsDir = [dirPaths objectAtIndex:0]; 

    // Build the path to the database file 
    databasePath = [[NSString alloc]initWithString: [docsDir stringByAppendingPathComponent:@"strings.sqlite"]]; 

    NSFileManager *filemgr = [NSFileManager defaultManager]; 

    if ([filemgr fileExistsAtPath: databasePath ] == NO) 
    { 
     const char *dbpath = [databasePath UTF8String]; 
     if (sqlite3_open(dbpath, &contactDB) == SQLITE_OK) 
     { 
     NSString * query = 
      @"SELECT string FROM strings"; 
      const char * stmt = [query UTF8String]; 
      if (sqlite3_prepare_v2(contactDB, stmt, -1,&statement, NULL)==SQLITE_OK){ 
       if (sqlite3_step(statement) == SQLITE_ROW) 
       { 
    NSString *string = [[NSString alloc]initWithUTF8String:(const char*)sqlite3_column_text(statement, 0)]; 
        cell.textLabel.text = string;    } 
      } 
      else NSLog(@"Failed"); 
      sqlite3_finalize(statement); 
     } 
     sqlite3_close(contactDB); 
    } 

} 

回答

0

我建議您通讀Table View Programming Guide

大多數你把viewDidLoad通常被放置在

- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath; 
+0

我知道那是放在那裏,但這是在一個人有一個字符串類來保存字符串對象,可以在此方法內使用的情況下。我沒有做任何字符串類,這就是爲什麼我感到困惑:( –

0

序列是非常複雜的方法U使用,當u都爲這就像把黃油塗在麪包表視圖的委託方法。

嘗試我的回答從這個Link

讓我知道它的工作!!!!
歡呼聲

+0

@BarinStroms在鏈接中你只提到了應用程序設計,我卡在有什麼事情做ith uitableview :( –

+0

我在答案中提到是否有些時候DB和Xcode存在問題,它可能無法正確連接。除了我描述的方法在處理數據庫時最爲人所知。 – WaaleedKhan

0

如果您使用模擬器進行測試,然後再次刪除以前的版本並安裝應用程序。它從文檔目錄中獲取SQL文件。所以請試試這個,讓我知道。謝謝

0

你檢查問題是否與你的tableview或數據庫? 你能夠從數據庫中獲取數據嗎?檢查你是否缺少連接代碼中的sqlite的任何方法。