0

我从服务器获取数据, NSData 很好,并给出了一个字节数。NSString 为空:(第二个日志)

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 回答