2013-01-22 104 views
0

我已成功将UIImage转换为NSData并将其发送到使用SBJson Web服务的服务器。 我使用这个代码:如何将NSData转换为UIImage?

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"]; 

这里IMG是UIImage的,mainImage是的UIImageView。从这方面看,一切都进展顺利。 现在在另一端,我必须得到图像有没有面临的问题。 我使用这个代码:

NSData *imgdata=[abc valueForKey:@"image"]; 

    imge = [UIImage imageWithData:imgdata]; 

    imgview=[[UIImageView alloc]initWithImage:imge]; 

当我打印imgdata它返回相同的数据,因为我从另一端发送,但是当我试图此数据转换回一个UIImage的(在第二行上面的代码)它抛出一个异常。

2013年1月22日14:23:43.298 Drase [946:11303] - [__ NSArrayI长度]:无法识别的选择发送到实例0x7566800 2013年1月22日14:23:43.298 Drase [946:11303 ] *终止应用程序由于未捕获的异常 'NSInvalidArgumentException',原因: ' - [__ NSArrayI长度]:无法识别的选择发送到实例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 0x1c86f44 0x1c86e1b 0x1c3b7e3 0x1c3b668 0x6665c 0x29d2 0x2905) libC++ abi.dylib:终止称为抛出异常。

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

+0

无论'abc'是返回一个'NSArray'时'valueForKey:'叫上其与键'@ “图像”'。什么是'abc'? –

+0

最有可能的编码问题 - 您可以在* imgdata'值发送数据之前重新创建图像* – James

+0

plz告诉abc的类型 –

回答

0

尝试

NSData *data = yourData; 

    UIImage *image = [UIImage imageWithData:data]; 

NSData *data = yourData; 

    UIImage *image = [[UIImage alloc] initWithData:data]; 
    .... 
    [image release]; 
+0

他只使用这一个...... –

+0

@Rachel我不认为这是正确的,那就是他已经在做的事情。 –

+0

@Raxhel我已经试过这个,但它不工作... – Atul

0

,我认为农行的NSArray类型,即不可变的,当你执行这条线

imge = [UIImage imageWithData:imgdata]; 

它已经与abc NSArray因为imgdata

这里你间接地试图修改它引用的,这就是为什么它是致电[__NSArrayI length]。但在实际不存在这样的方法,因为我们可以算的NSArray,但不能措施Length.that意味着没有这样的方法这就是为什么它是给错误

[__NSArrayI length]: unrecognized selector sent to instance

更新1:

试做这样的事情:

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

我认为这是不对的。为什么'NSMutableArray'响应'length'? –

+0

实际长度与NSString相关 –

+0

@Atul:检查更新1 –