2013-08-29 103 views
1

我需要将我的uint8_t缓冲区中的单个元素的内容转换为NSString,以便我可以将其显示到我的iPhone应用程序上的标签。我从TCP连接中读取缓冲区的内容。我没有得到正确的编码,因此元素的值可以正确显示。例如,如果缓冲区[4]的内容为0xFD或253,我该如何最好地将其转移到标签? (标签是data1)还是有更简单的方法?谢谢。uint8_t转换为NSString

uint8_t buffer[64]; 
uint8_t tinybuffer[1]; 
int len; 

// Read in contents from TCP connection, log dump, and display to label. 
len = [inputStream read:buffer maxLength:sizeof(buffer)]; 

if (len > 0) { 
// Log dump 
for(int i = 0; i < len; i++) { 
    NSLog(@"Returning byte %d : %x", i, buffer[i]); 
} 
NSLog(@"Finished Reading"); 

// Get data to the screen. 
tinybuffer[0] = buffer[4]; 
NSString *str1 = [[NSString alloc] initWithBytes:tinybuffer length:1 encoding:NSUTF8StringEncoding]; 
_data1.text = str1; 
+0

0xFD字节应该显示什么字符? –

+0

我正在使用缓冲区进行Modbus传输。我需要拔出数组的元素并显示它们。 0xFD需要显示为253,因为它是数字转换值。 – OilLifter

回答

3
NSString *str1 = [NSString stringWithFormat:@"%d", tinybuffer[0]]; 

应该做你想要什么。

+0

谢谢!这工作! – OilLifter

+0

好的。刚刚做到了。我是新来张贴到这个网站。谢谢。 – OilLifter

+0

现在是%s而不是%d – jungledev