如何从base64encodedstring获取图像?

时间:2013-01-23 10:22:48

标签: json ios6 uiimageview uiimage base64

我正在使用base64encoding将UIImage发送到服务器,然后在另一端我将其恢复,将base64encodedstring转换为NSData,然后尝试将我的图像恢复到UIImageView上。

一切正常,发送Base64encodedString并接收它但是当我将NSData转换回UIImage时,它抛出以下异常

  

- [__ NSArrayI dataUsingEncoding:allowLossyConversion:]异常与Base64编码一起提交

这是我用于发布图片的代码:

img=mainImage.image;
NSData *imgdata=UIImagePNGRepresentation(img);
NSString *imgstring=[imgdata base64EncodedString];
NSString *post =[[NSString alloc] initWithFormat:@"gid=%@&image=%@",[lblgid text],imgstring];
NSLog(@"PostData: %@",post);

NSURL *url=[NSURL URLWithString:@"http://www.abcd/updategameimage.php"];

以下是接收端的代码

 NSString *imgStr=[abc valueForKey:@"image"];
    NSLog(@"%@",imgStr);
    NSData *imgdata=[NSData dataWithBase64EncodedString:imgStr];


    imge = [UIImage imageWithData:imgdata];

    [imgview setImage:imge];

此处 abc 是NSMutableArray

1 个答案:

答案 0 :(得分:0)

你确定abc是一个mutableArray吗?

因为您要发送valueForKey:方法。这是由NSObject实现的KVC方法,将此消息发送给它是没有意义的。

如果您打算使用objectForKey:方法发送它,那么这将是您发送到词典而不是数组的消息。

而且,你得到的错误:

  

- [__ NSArrayI dataUsingEncoding:allowLossyConversion:]异常与Base64编码一起提交

告诉您NSArray不响应dataUsingEncoding:allowsLossyConversion:消息 - 这是NSString对象的方法。

我认为你对你的对象类型感到困惑,需要更好地处理什么。

相关问题