jpeg を nsdata オブジェクトに変換し、そのデータを fmdb ラッパーを使用して sqlite データベースの blob 列に格納しようとしています。
例えば:
UIImage *img = [UIImage imageNamed:@"house.jpeg" ];
NSData *data = UIImageJPEGRepresentation(img, 1.0);
NSString *query = [NSString stringWithFormat:@"insert into t1 values (null,?)", data ];
t1 は次のように作成されます。
[database executeUpdate:@"create table t1(rowid integer primary key autoincrement, house blob)" ];
理想的には、データを取り出して、次のように jpeg に変換することができます。
NSString *query = @"select * from t1";
FMResultSet *results = [database executeQuery:query];
while ([ results next ])
{
NSData *picData = [ results dataForColumn:@"house" ];
UIImage *housePhoto = [ UIImage imageWithData:picData ];
}
文字列などの他のデータ型にこのタイプのモデルを使用しましたが、問題ありません。私の現在の試みでは、このモデルを文字列列のテーブルと 1 つの blob 列で使用しています。データベースに書き込むと、すべての文字列が正常に保存されますが、上記のように blob 列を読み戻そうとすると、blob 列に対して null が返されます。データベースに書き込む前に、書き込んでいる NSData が null ではなく、jpeg 表現が含まれていることを再確認しました。既知の問題が誰かに飛び出していますか、それとも私が外部で何か間違ったことをしているだけですか?