Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/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
用cocoa保存二进制数据_Cocoa_Binary - Fatal编程技术网

用cocoa保存二进制数据

用cocoa保存二进制数据,cocoa,binary,Cocoa,Binary,我有一些代码执行命令unzip-p myzip.zip picture.png,该命令打印picture.png的“二进制”数据。如果文件以正确的扩展名保存,打开时会出现错误,表明文件已损坏。所以我的问题是,使用cocoa将这些数据写入文件的正确方式是什么?现在我只是在使用[data writeToFile:@”/picture.png“原子化:否]。我知道二进制应该是1和0,但它给出了如下“二进制”代码: ?VaE?.?_QA?J+G:'GD?{C??!? ??٬?d?V ?E?e???8^?

我有一些代码执行命令
unzip-p myzip.zip picture.png
,该命令打印picture.png的“二进制”数据。如果文件以正确的扩展名保存,打开时会出现错误,表明文件已损坏。所以我的问题是,使用cocoa将这些数据写入文件的正确方式是什么?现在我只是在使用
[data writeToFile:@”/picture.png“原子化:否]。我知道二进制应该是1和0,但它给出了如下“二进制”代码:

?VaE?.?_QA?J+G:'GD?{C??!? ??٬?d?V ?E?e???8^?t?-P?ʍ?psq???N?S:????,l^&?,_."? ??!a?Y`?,?-??.I ?ILD]?Ҙ佊??????????FLߊŜ?D??Y%?@O?#/??#

所有数据都保存在0和1中(在编写本文时)。当您将文件打印到显示器上时,它会给出带有保存值的ASCII字符

当将文件保存为“二进制”时,这基本上意味着不转换换行符。PNG保存正确,尽管“解压”可能解压错误,但zip已损坏或zip中的PNG已损坏


这是正确的:

[data writeToFile:@"/picture.png" atomically:YES];
原子性:建议是



代码的问题可能是NSData不包含有效的PNG数据,而只包含原始图像数据、GIF数据、JPEG数据或其他类型的非PNG数据。

在第三次阅读了非常长的
man
页面后,我发现了一种更好的方法,使用
-d
参数来实现它