字节数组到NSData

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (58)

在WebService中,JSON响应即将到来。在响应中,图像以字节数组的形式出现。我必须在UIImageView中显示图像。我试图将字节数组转换为NSData。但没有得到如何做到这一点。我相信字节数组中有图像数据。Sample Byte数组供你参考:

        (137,
        80,
        78,
        71,
        ...
        66,
        96,
        130)
提问于
用户回答回答于

你必须首先将JSON转换为一个字符串数组; 例如,你可以使用这个NSJSONSerialization类:

NSArray *strings = [NSJSONSerialization JSONObjectWithData:theJSONString options:kNilOptions error:NULL];

然后遍历字符串数组,将每个条目转换为一个整数,并将其添加到分配的字节指针/数组中:

unsigned c = strings.count;
uint8_t *bytes = malloc(sizeof(*bytes) * c);

unsigned i;
for (i = 0; i < c; i++)
{
    NSString *str = [strings objectAtIndex:i];
    int byte = [str intValue];
    bytes[i] = byte;
}

然后最后在字节之外创建一个NSData,然后使用它初始化一个UIImage对象:

NSData *imageData = [NSData dataWithBytesNoCopy:bytes length:c freeWhenDone:YES];
UIImage *image = [UIImage imageWithData:imageData];
用户回答回答于

下面是将数据放入NSData对象的示例:

const unsigned char bytes[] = {values here};
NSData *data = [NSData dataWithBytes:bytes length:sizeof(bytes)];
NSLog(@"%@", data);

扫码关注云+社区

领取腾讯云代金券