我正在使用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
答案 0 :(得分:0)
你确定abc
是一个mutableArray吗?
因为您要发送valueForKey:
方法。这是由NSObject实现的KVC方法,将此消息发送给它是没有意义的。
如果您打算使用objectForKey:
方法发送它,那么这将是您发送到词典而不是数组的消息。
而且,你得到的错误:
- [__ NSArrayI dataUsingEncoding:allowLossyConversion:]异常与Base64编码一起提交
告诉您NSArray不响应dataUsingEncoding:allowsLossyConversion:
消息 - 这是NSString对象的方法。
我认为你对你的对象类型感到困惑,需要更好地处理什么。