Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 目标c-如何将nsdata转换为字节数组_Iphone_Objective C_Bytearray - Fatal编程技术网

Iphone 目标c-如何将nsdata转换为字节数组

Iphone 目标c-如何将nsdata转换为字节数组,iphone,objective-c,bytearray,Iphone,Objective C,Bytearray,我正在处理UIImage到NSData的转换。我想将NsData转换为字节数组,并在json解析器的帮助下将该字节数组发布到服务器 若我将以下类型的静态字符串传递给服务器,它将接受并存储。下面是字符串语法的示例。我想要以下类型的字节数组将数据发布到服务器 [255216255224,0,16,74,70,73,70,0,1,1,0,96,0,96,0,0255219,0,67,0,8,6,7,6,5,8,7,7,7,9,9,8,10,12,] 对于上述结果,我将图像转换为数据,如下所示: UII

我正在处理UIImage到NSData的转换。我想将NsData转换为字节数组,并在json解析器的帮助下将该字节数组发布到服务器

若我将以下类型的静态字符串传递给服务器,它将接受并存储。下面是字符串语法的示例。我想要以下类型的字节数组将数据发布到服务器

[255216255224,0,16,74,70,73,70,0,1,1,0,96,0,96,0,0255219,0,67,0,8,6,7,6,5,8,7,7,7,9,9,8,10,12,]

对于上述结果,我将图像转换为数据,如下所示:

UIImage *image = [UIImage imageNamed:@"image.png"];
NSData *data = UIImagePNGRepresentation(image);
现在我想将NSdata转换为字节数组,我正在使用以下代码:

NSUInteger len = [data length];
Byte *byteData = (Byte*)malloc(len);
memcpy(byteData, [data bytes], len);
free(byteData)
我还将其存储到NSdata。但却无法得到结果。 我还用循环输入了一些代码,但每次它都会给出aPNG

在上面的代码中,我是否做错了什么

请为我提供一些帮助,并请求为此提供任何帮助


提前谢谢。

我不能100%确定这是不是你想要的。尝试:

UIImage *image = [UIImage imageNamed:@"image.png"];
NSData *data = UIImagePNGRepresentation(image);
NSUInteger len = data.length;
uint8_t *bytes = (uint8_t *)[data bytes];
NSMutableString *result = [NSMutableString stringWithCapacity:len * 3];
[result appendString:@"["];
for (NSUInteger i = 0; i < len; i++) {
    if (i) {
        [result appendString:@","];
    }
    [result appendFormat:@"%d", bytes[i]];
}
[result appendString:@"]"];
UIImage*image=[UIImage-imagename:@“image.png”];
NSData*data=UIIMAGEPNGRE显示(图像);
NSU整数len=data.length;
uint8_t*字节=(uint8_t*)[数据字节];
NSMutableString*result=[NSMutableString stringWithCapacity:len*3];
[结果追加字符串:@“[”];
对于(整数i=0;i

这就是您所需要的吗?

是否要将其转换为字节数组(在术语的C意义上)或表示数值列表的JSON编码字符串?是否有任何理由在填充缓冲区后立即释放缓冲区?如果您希望缓冲区仍保留NSData对象所保留的内容。。。你不能指望它,除非你能释放它。只有当你不再需要缓冲区时才释放它。@udy谢谢你的回复,但是使用这种方式。它不工作。@zneak我想将我的NSData转换为字节数组格式,如我在问题中所示。@Hrushikesh为什么要将数据作为十进制值列表发布到服务器上?这是相当低效的。为什么不直接发布原始数据字节?次要说明:如果您将
字节
声明为
常量8_t*字节
,则不需要在rhs上强制转换类型。