我通过存储其字符串表示形式将图像存储在数据库中,如下所示:
NSData *imageData = UIImageJPEGRepresentation(myImage, 0.7);
NSString *imageString = [[NSString alloc] initWithData: imageData encoding:NSUTF8StringEncoding];
然后将该字符串存储在数据库中。稍后在我的代码中,我需要将其从数据库中拉出并显示它。我试图像这样检索它:
NSData *data = [[items[i] objectForKey:@"image"] dataUsingEncoding:NSUTF8StringEncoding];
UIImage *newImage = [[UIImage alloc] initWithData:data];
其中items
是从数据库中检索的数据数组。但是,当我检索它时,newImage
为零。我的编码方法是我在这个网站上最常见的编码方法,但现在我认为它一定是问题所在。有人可以帮帮我吗?
答案 0 :(得分:0)
考虑使用base 64编码的字符串作为数据的表示。例如,从iOS 7.0开始,您可以通过调用:
从图像数据中获取字符串// Convert to string
NSString *base64String = [imageData base64EncodedStringWithOptions:0];
// Convert string to image
NSData *dataFromString = [[NSData alloc] initWithBase64EncodedString:base64String options:0];
UIImage *image = [UIImage imageWithData:dataFromString];