Objective-C - 如何将Byte数组转换为NSString?

Nic*_*ick 1 cocoa-touch objective-c ios

我试图将一个字节数组转换为一个NSString对象.出于测试目的,我只是尝试将字符串的内容打印到日志中.

这是我得到的:

UInt8 buf[BUFSIZE];
CFIndex bytesRead = CFReadStreamRead(stream, buf, BUFSIZE);
if (bytesRead > 0) {
NSString  *serverText = [[NSString alloc] initWithBytes:buf
                                                 length:(NSUInteger)BUFSIZE
                                               encoding:NSASCIIStringEncoding];
NSLog("%@",serverText);
[serverText release];
Run Code Online (Sandbox Code Playgroud)

我正在尝试初始化一个新的NSString使用initWithBytes并存储它serverText.我可以在调试器中看到值serverText是"无效地址".我是Objective-c的新手,但我认为这意味着initWithBytes工厂方法不成功.

缓冲区包含数据.有人可以帮我吗?

谢谢..

Nic*_*ick 7

在这里我提出了:

  NSData *data = [[NSMutableData alloc] init];
            uint8_t buffer[1024];
            unsigned int len = 0;

            len =  [(NSInputStream *)stream read:buffer maxLength:1024];

            if(len > 0)
            {
                [data appendBytes:&buffer length:len];
            }
            NSString *serverText = [[NSString alloc]
                                    initWithData:data
                                    encoding:NSASCIIStringEncoding];

            NSLog(@"%@", serverText);
Run Code Online (Sandbox Code Playgroud)