0

UITableView に sqlite データベースの列の内容を入力するために使用したメソッドのコードを次に示します。ただし、実行時にエラーは発生しませんが、UITableView にはデータが表示されません。誰かが助けることができれば、それは非常に高く評価されます。

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

}
4

4 に答える 4

0

テーブルビュープログラミングガイドを読むことをお勧めします。

viewDidLoad通常入力するシーケンスのほとんどは、

- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath; 
于 2012-06-10T11:04:17.387 に答える
0

問題がテーブルビューまたはデータベースにあるかどうかを確認しましたか? データベースからデータをフェッチできますか?コードで sqlite に接続する方法が欠落していないか確認してください。

于 2012-06-10T14:55:35.150 に答える
0

テーブルビューのすべてのデリゲートメソッドを持っているときに、あなたが使用しているかなり複雑なメソッドは、パンにバターを塗るようなものです。

このリンクから私の回答を試してください

それがうまくいったかどうか教えてください!!!!
乾杯

于 2012-06-10T11:09:04.533 に答える
0

テスト目的でシミュレーターを使用している場合は、以前のビルドを削除してアプリを再度インストールしてください。ドキュメント ディレクトリから SQL ファイルをフェッチします。これを試して、私に知らせてください。ありがとう

于 2012-06-10T12:10:44.297 に答える