2013-01-23 48 views
0

我使用base64encoding發送一個UIImage到服務器,然後在另一端,我把它取回,將base64encodedstring轉換爲NSData,然後試圖讓我的圖像回到UIImageView。如何從base64encodedstring中獲取圖像?

一切工作正常發送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

回答

0

你肯定abc是mutableArray?

因爲您發送的是valueForKey:方法。這是NSObject實現的KVC方法,發送此消息沒有意義。

如果您打算將它發送給objectForKey:方法,那麼這將是您發送給字典的消息,而不是數組。

而且,你所得到的錯誤:

- [__ NSArrayI dataUsingEncoding:allowLossyConversion:]例外與Base64編碼正在添加

是告訴你一個NSArray並不dataUsingEncoding:allowsLossyConversion:迴應消息 - 這是NSString對象的一種方法。

我認爲你對你的對象類型感到困惑,需要更好地處理什麼是什麼。