1

所以我从 JSON 请求中获取了一个 base64 编码的数据对象(data{phto => base64stuff})

NSData *imagedata = [data objectForKey:@"phto"];

然后我尝试使用以下方法转换它:

UIImage *image = [UIImage imageWithData: [imagedata bytes]];

这导致了这个错误:

-[__NSCFString bytes]: unrecognized selector sent to instance

我已经打印出图像数据,它是正确的。我需要做一些其他的格式化吗?

4

1 回答 1

1

键的值photo是 base64 编码的字符串,而不是数据。你需要这样的东西:

NSString *base64String = data[@"photo"];
NSData *imageData = ... // Some call to convert the base64 encoding string to NSData
UIImage *image = [UIImage imageWithData:imageData];

由于某些奇怪的原因,iOS SDK 没有提供 base64 编码器/解码器。您需要使用众多第三方库之一或编写自己的库。一些快速搜索将为您指明正确的方向。

于 2013-06-07T20:40:08.463 回答