3

への変換に問題がNSDataありUIImageます。

デバイスのカメラから画像をキャプチャし、この画像を変換NSDataして BLOB データ型を使用して SQLite に保存します。

画像データは正常に DB に保存されますが、画像データを取得するとアプリケーションがクラッシュします。

私はこのコードを使用します:

NSData *tempData = [[NSData alloc] init];
tempData = [[arr_img objectAtIndex:indexPath.row] valueForKey:@"Image"];

UIImage *img = [[UIImage alloc] initWithData:tempData];

次のエラーが表示されます。

キャッチされていない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: '-[__NSCFString バイト]: 認識されないセレクターがインスタンス 0x5f8c000 に送信されました'

私は何を間違っていますか?

4

2 に答える 2

1

SQLiteに画像を挿入します。

sqlite3_bind_blob(compiledStatement,i, [image_data bytes], [image_data length], SQLITE_TRANSIENT);

SQLiteから画像を取得します。

NSData *dataForCachedImage = [[NSData alloc] initWithBytes:sqlite3_column_blob(compiledStatement, i) length: sqlite3_column_bytes(compiledStatement, i)];           
UIImage *img = [UIImage imageWithData:dataForCachedImage];

ここで、「i」はデータベースの列番号です

于 2012-05-30T04:55:50.813 に答える
1

あなたはこのようにすることができます

NSData *data = yourData;
UIImage *image = [UIImage imageWithData:data];

また

NSData *data = yourData;
UIImage *image = [[UIImage alloc] initWithData:data];
[image release];

それが機能する場合は、ur NSData の値に問題がある可能性があることを意味します

于 2012-05-30T04:48:05.233 に答える