在之前盯腌,我們使用以下方法進(jìn)行NSData與UIImage的轉(zhuǎn)換
//UIImage轉(zhuǎn)換為NSData
NSData *imageData = UIImagePNGRepresentation(aimae);
//NSData轉(zhuǎn)換為UIImage
NSData *imageData = [NSData dataWithContentsOfFile: imagePath];
UIImage *image = [UIImage imageWithData: imageData];
但是我們把NSData保存到FMDB數(shù)據(jù)庫里的時候践剂,再次從數(shù)據(jù)庫取出鬼譬,就會報錯,即使設(shè)了斷點(diǎn)逊脯,NSData有值优质,也依然無法賦給UIImage使用。
解決辦法是不使用SQLITE3的blob類型军洼,而是使用系統(tǒng)自帶的base64加密一下巩螃,然后使用string類型進(jìn)行保存
NSData *imageData = [[NSData alloc] initWithData:UIImagePNGRepresentation(UImageGet)];
NSString *imageFinal = [imageData base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
從數(shù)據(jù)庫取出該字段,給base64解密歉眷,然后再次轉(zhuǎn)為NSData類型即可給UIImage使用.
NSString *imageGet =[resultSet stringForColumn:@"modeImage"];
NSData *imgData = [[NSData alloc] initWithBase64EncodedString:imageGet options:NSDataBase64DecodingIgnoreUnknownCharacters];
UIImage *imageShow = [UIImage imageWithData:imgData];