【发布时间】:2012-01-11 09:31:41
【问题描述】:
如何在objective c 中将unsigned char 数组转换为NSData?
这是我想要做的,但它不起作用。 缓冲区是我的无符号字符数组。
NSData *data = [NSData dataWithBytes:message length:length];
【问题讨论】:
标签: iphone objective-c nsdata arrays
如何在objective c 中将unsigned char 数组转换为NSData?
这是我想要做的,但它不起作用。 缓冲区是我的无符号字符数组。
NSData *data = [NSData dataWithBytes:message length:length];
【问题讨论】:
标签: iphone objective-c nsdata arrays
你可以使用这个 NSData 类方法
+ (id)dataWithBytes:(const void *)bytes length:(NSUInteger)length
类似
NSUInteger size = // some size
unsigned char array[size];
NSData* data = [NSData dataWithBytes:(const void *)array length:sizeof(unsigned char)*size];
然后你可以像这样取回数组(如果你知道它是正确的数据类型)
NSUInteger size = [data length] / sizeof(unsigned char);
unsigned char* array = (unsigned char*) [data bytes];
【讨论】:
[NSData bytes] 给出了无类型的结果,因此需要将其转换为您正在关注的类型。
+ (id)dataWithBytesNoCopy:(void *)bytes length:(NSUInteger)length 代替),第二部分只是获取指向该数据的指针,它不会复制它回来了。