在之前,我們使用以下方法進行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è)了斷點,NSData有值,也依然無法賦給UIImage使用。
解決辦法是不使用SQLITE3的blob類型,而是使用系統(tǒng)自帶的base64加密一下,然后使用string類型進行保存
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];