0

UIImageをサーバーに送信するためにbase64encodingを使用していますが、反対側でそれを取得し、base64encodedstringをNSDataに変換してから、UIImageViewで画像を取得しようとしています。

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 です

4

1 に答える 1

0

abcmutableArrayでよろしいですか?

メソッドを送信しているからですvalueForKey:。これはNSObjectによって実装されたKVCメソッドであり、このメッセージを送信しても意味がありません。

代わりにメソッドを送信する場合はobjectForKey:、配列ではなく辞書に送信するメッセージになります。

そして、あなたが得ているエラー:

-[__ NSArrayI dataUsingEncoding:allowLossyConversion:]例外がBase64エンコーディングで発生しています

NSArrayがdataUsingEncoding:allowsLossyConversion:メッセージに応答しないことを示しています。これはNSStringオブジェクトのメソッドです。

オブジェクトタイプと混同されており、何が何であるかをより適切に処理する必要があると思います。

于 2013-02-02T10:45:12.567 に答える