我正在尝试将 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 不为空,并且确实包含 jpeg 表示,并且确实如此。一个已知的问题是否会出现在任何人身上,或者我只是在外部做错了什么?