0

我正在使用 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

4

1 回答 1

0

你确定abc是一个 mutableArray 吗?

因为您正在向它发送一个valueForKey:方法。这是 NSObject 实现的 KVC 方法,向它发送此消息没有意义。

如果您打算将objectForKey:方法发送给它 - 那么这将是您发送给字典而不是数组的消息。

而且,您得到的错误是:

-[__NSArrayI dataUsingEncoding:allowLossyConversion:] 异常正在使用 Base64 编码

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

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

于 2013-02-02T10:45:12.567 回答