Сохранение двоичных данных с какао - PullRequest
0 голосов
/ 24 января 2011

У меня есть код, который выполняет команду unzip -p myzip.zip picture.png, которая распечатывает «двоичные» данные picture.png.Если он сохранен с правильным расширением, при открытии выдает ошибку, говорящую о том, что файл поврежден.Поэтому мой вопрос заключается в том, как правильно записать эти данные в файл с использованием какао?Прямо сейчас я просто использую [data writeToFile:@"/picture.png" atomically:NO];.Я знаю, что двоичный код должен быть 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?#/??#

Ответы [ 2 ]

1 голос
/ 24 января 2011

Все данные сохраняются в 0 и 1 (на момент написания).Когда вы распечатываете файл на дисплей, он дает символы ASCII с сохраненными значениями.

При сохранении файла как «двоичного» это в основном означает, что переводы строки не преобразуются.PNG сохранен правильно, хотя «unzip» может распаковать его неправильно, почтовый индекс поврежден или png в почтовом индексе поврежден.


Это правильно Cocoa:

[data writeToFile:@"/picture.png" atomically:YES];

атомарно: рекомендуется ДА.


Проблема с вашим кодом может заключаться в том, что NSData не содержит действительных данных PNG, а содержит только необработанные данные изображения, данные GIF, данные JPEG или другие виды данных.-png данных.

0 голосов
/ 24 января 2011

Прочитав чрезвычайно длинную страницу man в третий раз, я нашел лучший способ сделать это, используя аргумент -d.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...