Я пытаюсь преобразовать jpeg в объект nsdata, а затем сохранить эти данные в столбце BLOB-объектов базы данных sqlite с помощью оболочки fmdb.
Например:
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-объекта возвращается ноль.Перед записью в базу данных я дважды проверил, чтобы видеть, что NSData, с которым я пишу, не был нулевым и содержал представление jpeg, и это сделал.У кого-нибудь возникает известная проблема или я просто что-то не так делаю из-за этого?