簡體   English   中英

如何將NSData轉換為UIImage?

[英]How to convert NSData in to UIImage?

我已經成功將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"];

這里img是UIImage, mainImage是UIImageView。 從這一點到現在一切都很好。 現在在另一端,我必須要解決那里的圖像問題。 我正在使用此代碼:

 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]-[__ NSArrayI length]:無法識別的選擇器已發送到實例0x7566800 2013-01-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:終止調用引發異常。

我沒有針對此問題的任何解決方案,請幫助我。

我認為abc是NSArray類型,即不可變,當您執行此行時

imge = [UIImage imageWithData:imgdata];

由於imgdata使用abc NSArray引用

在這里,您間接嘗試修改它,這就是為什么它調用[__NSArrayI length] 但是實際上沒有這種方法,因為我們可以計算NSArray但不能測量Length。這意味着沒有這樣的方法,這就是為什么它會產生錯誤

[__NSArrayI length]: unrecognized selector sent to instance

更新1:

嘗試做這樣的事情:

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

嘗試

  NSData *data = yourData;

  UIImage *image = [UIImage imageWithData:data];

要么

  NSData *data = yourData;

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM