0

サーバーからデータを取得しています。NSData は良好で、バイト単位で数値を示します。NSString が null です: (2 番目のログ)

NSData *stringOfData = [data subdataWithRange:NSMakeRange(0, [data length])];
NSString *finalData = [[[NSString alloc] initWithData:stringOfData encoding:NSUTF8StringEncoding] autorelease];

NSLog(@"RECIEVED FROM SERVER:%@",stringOfData); //is ok
NSLog(@"RECIEVED :%@",finalData); //is null

RECIEVED FROM SERVER:<0b000000 02000000 03000000 453242>
RECIEVED :

ここで何が問題なのですか?私はすべてを試していましたが、どういうわけか常に null です。.

編集:データは、サーバーから取得しているバイトです。int 数値であると思われますが、文字列として表示したかった..他の種類のコーディングを試みていましたが、まだ null ..

4

1 に答える 1

0

データに整数が含まれている場合、生データを NSString にロードしても、期待どおりの結果が得られません。おそらく、次のようなものがもっと必要です。

int *i = (int *)data.bytes;
NSLog(@"RECIEVED :%d, %d, %d, %d", i[0], i[1], i[2], i[3]);

また、バイト オーダーの問題に対処しなければならないことに気付くかもしれません。もしそうなら、これは役立つかもしれません:

NSLog(@"RECIEVED :%d, %d, %d", ntohl(i[0]), ntohl(i[1]), ntohl(i[2]), ntohl(i[3]));
于 2013-03-06T11:30:56.150 に答える