2009-08-09 5 views
3

iPhoneプロジェクトで少しジレンマがあります。iphoneのバイト配列を変換する際に問題が発生しました。

ウェブサービスからJSONデータを取得しています。私は辞書にそれをdeserializeすることができますOK。辞書値の1つはバイナリ(画像)ですが、私のJSONライブラリはそれをNSDecimalNumbersのNSArrayとして逆シリアル化します!

[UIImage imageWithData:myNSData]を使用して、NSDecimalNumbersのNSArrayをNSDataオブジェクトに変換してイメージを正常に生成できるようにするにはどうすればよいですか? NSDecimalNumbersの値の範囲を応じて、この

unsigned char *buffer = (unsigned char*)malloc([arrayOfNumbers count]); 
int i=0; 
for (NSDecimalNumber *num in arrayOfNumbers) { 
    buffer[i++] = [num intValue]; 
} 
NSData *data = [NSData dataWithBytes:buffer length:[arrayOfNumbers count]]; 
free(buffer); 

...または類似した何かについての

答えて

3

方法。

+0

mallocの代わりにバッファを割り当てるために、[NSMutableData dataWithLength:[arrayOfNumbers count]];を使って、メモリ消費量とバッファコピーを減らすことができます。 –

+0

華麗で、魅力的に働いた! =]私は生のCをしてからしばらくしていたので、私の構文がオフだったと思います。 –

+0

+1ありがとうございます。私はこの間数日間苦労してきました。 – simonbs

関連する問題