0

UIImageをNSDataに正常に変換し、SBJsonWebサービスを使用してサーバーに送信しました。私はこのコードを使用しています:

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(上記のコードの2行目)に変換しようとすると、例外がスローされます。

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:例外をスローして終了します。

この問題の解決策が得られません。助けてください。

4

2 に答える 2

0

この行を実行すると、abcはNSArrayタイプ、つまり不変だと思います

imge = [UIImage imageWithData:imgdata];

abc NSArrayのために参照していますimgdata

ここでは、間接的に変更しようとしています。そのため、を呼び出してい[__NSArrayI length]ます。しかし、実際にはそのようなメソッドはありません。NSArrayをカウントすることはできますが、長さを測定できないためです。つまり、エラーが発生する理由はそのようなメソッドがないことを意味します。

[__NSArrayI length]: unrecognized selector sent to instance

更新1:

このようなことをしてみてください:

NSData *imgdata=[[abc valueForKey:@"image"]objectAtIndex:0];
于 2013-01-22T09:06:45.150 に答える
0

試す

  NSData *data = yourData;

  UIImage *image = [UIImage imageWithData:data];

また

  NSData *data = yourData;

  UIImage *image = [[UIImage alloc] initWithData:data];
  ....
  [image release];
于 2013-01-22T09:06:46.780 に答える