2

画像をBLOBとしてデータベースに保存し、次のコーディングを使用して取得しました

const char*dbPath=[databasePath UTF8String];
if (sqlite3_open(dbPath, &sqliteHandler)==SQLITE_OK) {
    sqlite3_stmt *stmt;
    NSString *selctQuery=[NSString stringWithFormat:@"select * from imagetable where imageId=11"];
    NSLog(@"selectQuery is %@",selctQuery);
    const char *dispStmt=[selctQuery UTF8String];       
    sqlite3_prepare_v2(sqliteHandler, dispStmt, -1, &stmt, NULL);
    NSLog(@"%d",sqlite3_prepare_v2(sqliteHandler, dispStmt, -1, &stmt, NULL));

    while (sqlite3_step(stmt)==SQLITE_ROW) {
        //  NSString *pwd=[[NSString alloc]initWithUTF8String:(const char *)sqlite3_column_text(sqltmt, 1)];
    //  NSString *image1=[[NSString alloc]initWithUTF8String:(const char *)sqlite3_column_text(stmt, 1)];
    //  NSString *image2=[[NSString alloc]initWithUTF8String:(const char *)sqlite3_column_text(stmt, 2)];
    //  NSString *image3=[[NSString alloc]initWithUTF8String:(const char *)sqlite3_column_text(stmt, 3)];
        //NSLog(@"%@",image1);
        NSData *cachedImage1 = [[NSData alloc] initWithBytes:sqlite3_column_blob(stmt, 1) length: sqlite3_column_bytes(stmt, 1)];           
        NSData *cachedImage2 = [[NSData alloc] initWithBytes:sqlite3_column_blob(stmt, 2) length: sqlite3_column_bytes(stmt, 2)];           
        NSData *cachedImage3 = [[NSData alloc] initWithBytes:sqlite3_column_blob(stmt, 3) length: sqlite3_column_bytes(stmt, 3)];           

        thumbImage = [UIImage imageWithData:cachedImage1];
        bgImage = [UIImage imageWithData:cachedImage2];
        logoImage = [UIImage imageWithData:cachedImage3];
        [cachedImage1 release];
        [cachedImage2 release];
        [cachedImage3 release];

    }
}

次のコードを使用して表示しようとしました...

bCardFront.image=[UIImage imageNamed:bgImage]

しかし、それは言う警告メッセージを払います

互換性のないObjective-Cタイプ'structUIImage *'、予期される'struct NSString *'異なるObjective-Cタイプから'imageNamed:'の引数1を渡す場合

この画像を別々の画像ビューで表示する方法を教えてもらえますか?

前もって感謝します。

4

2 に答える 2

0

bCardFront.image=[UIImage imageNamed:bgImage]に置き換える

bCardFront.image=bgImage ここでbgImageは画像名ではなく、UIImageのオブジェクトです

于 2012-05-02T04:19:22.630 に答える
0

[UIImage imagedNamed:xxx]はアプリバンドルから画像を取得し、xxxは画像名の文字列です。これを試して:

[bCardFront setImage:bgImage];
于 2012-05-02T04:16:40.120 に答える