jpeg를 nsdata 개체로 변환하려고 시도하고 fmdb 래퍼를 사용하여 sqlite 데이터베이스의 BLOB 열에 해당 데이터를 저장하려고합니다.NSite UIImageJPEGRepresentation이 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) 같은 것을 만들어
: 다음과 같이 밖으로 데이터를 끌어와 JPEG로 다시 전환 할 수있을 것입니다 이상적
[database executeUpdate:@"create table t1(rowid integer primary key autoincrement, house blob)" ];
:
를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 표현을 포함하고 있는지 확인하기 위해 두 번 확인했습니다. 알려진 문제가 누구에게나 튀어 나오지 않습니까? 아니면이 문제를 외부에서 잘못하고 있습니까?
당신은 어떤 데이터가 실제로 저장되었다 있는지 결과 sqlite가 데이터베이스를 확인 했 기둥? 그러면 처음부터 데이터를 쓰는 것이 문제가되는지 아닌지를 결정하는 데 도움이됩니다. 'UIImageJPEGRepresentation()'이'nil'이 아닌 값을 반환하는지 확인해야합니다. 이미지에 데이터가 없거나 지원되지 않는 비트 맵 형식을 사용하고 있다면 실제로'nil'을 반환 할 수 있기 때문입니다. –