Ios 如何将NSData in转换为UIImage?

Ios 如何将NSData in转换为UIImage?,ios,ios6,uiimage,nsdata,xcode4.5,Ios,Ios6,Uiimage,Nsdata,Xcode4.5,我已成功地将UIImage转换为NSData,并使用SBJson web服务将其发送到服务器。 我正在使用以下代码: img=mainImage.image; NSData *imgdata=UIImagePNGRepresentation(img); NSString *post =[[NSString alloc] initWithFormat:@"gid=%@&image=%@",[lblgid text],imgdata]; NSURL *url=[NSURL URLWith

我已成功地将UIImage转换为NSData,并使用SBJson web服务将其发送到服务器。 我正在使用以下代码:

img=mainImage.image;
NSData *imgdata=UIImagePNGRepresentation(img);

NSString *post =[[NSString alloc] initWithFormat:@"gid=%@&image=%@",[lblgid text],imgdata];

NSURL *url=[NSURL URLWithString:@"http://www.abchjahdkahdakjskahdk/updategameimage.php"];
 NSData *imgdata=[abc valueForKey:@"image"];

    imge = [UIImage imageWithData:imgdata];

    imgview=[[UIImageView alloc]initWithImage:imge];
这里img是UIImage,mainImage是UIImageView。从这里开始一切都很顺利。 现在在另一端,我必须得到那里的图像,我面临着问题。 我正在使用以下代码:

img=mainImage.image;
NSData *imgdata=UIImagePNGRepresentation(img);

NSString *post =[[NSString alloc] initWithFormat:@"gid=%@&image=%@",[lblgid text],imgdata];

NSURL *url=[NSURL URLWithString:@"http://www.abchjahdkahdakjskahdk/updategameimage.php"];
 NSData *imgdata=[abc valueForKey:@"image"];

    imge = [UIImage imageWithData:imgdata];

    imgview=[[UIImageView alloc]initWithImage:imge];
当我打印imgdata时,它返回的数据与我从另一端发送的数据相同,但当我试图将此数据转换回UIImage(在上面代码的第二行中)时,它抛出了一个异常

2013-01-22 14:23:43.298 Drase[946:11303]-[\uu-NSArrayI-length]:发送到实例0x7566800的无法识别的选择器 2013-01-22 14:23:43.298 Drase[946:11303]*由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[\uu NSArrayI length]:未识别的选择器发送到实例0x7566800' *第一次抛出调用堆栈: (0x1ce1012 0x111ee7e 0x1d6c4bd 0x1cd0bbc 0x1cd094e 0x1cb1b2 0x881f3 0x87ef4 0x1c659 0x1132705 0x69920 0x698b8 0x12a671 0x12abcf 0x129d38 0x9933f 0x99552 0x773aa 0x68cf8 0x1c3cdf9 0x1c3cad0 0x1c56bf5 0x1c56962 0x1c87bb6 0x1C86F4 0x1c86e1b 0x1c3b7e3 0x1c3b668 0x6665c 0x29d2 0x2905) libc++abi.dylib:terminate调用引发异常


对于这个问题,我没有得到任何解决方案。请帮助我。

我认为abc是NSArray类型,即,当您执行这一行时,是不可变的

imge = [UIImage imageWithData:imgdata];
由于
imgdata

这里您间接地试图修改它,这就是它调用
[\uu NSArrayI length]
的原因。但实际上没有这样的方法,因为我们可以计算NSArray,但不能测量长度。这意味着没有这样的方法,这就是为什么它会给出错误

[\uuu NSArrayI length]:发送到实例的无法识别的选择器

更新1:

尝试这样做:

NSData *imgdata=[[abc valueForKey:@"image"]objectAtIndex:0];
试一试


当使用键
@“image”
调用
valueForKey:
时,无论什么
abc
都返回一个
NSArray
。什么是
abc
?很可能是编码问题-在使用
imgdata
值发送数据之前,能否重新创建图像?我认为这是不对的。为什么
NSMutableArray
会响应
length
?实际上,长度与NSString@Rachel我认为这是不对的,他已经这么做了。