Разархивируйте NSData без временного файла

String a = new String("foo");
String b = new String("foo");
System.out.println(a == b); // prints false
System.out.println(a.equals(b)); // prints true

Убедитесь, что вы понимаете, почему. Это потому, что сравнение == сравнивает только ссылки; equals() метод сопоставляет содержимое по символу.

Когда вы вызываете new для a и b, каждый получает новую ссылку, указывающую на "foo" в таблице строк. Ссылки разные, но контент один и тот же.

12
задан Vladimir 13 November 2009 в 08:44
поделиться

2 ответа

Насколько я понимаю, в формате zip файлы хранятся отдельно, и каждый сохраненный файл сжимается с использованием алгоритма сжатия (обычно это алгоритм DEFLATE).

Если вас интересует только распаковка данные, которые были сжаты с использованием алгоритма DEFLATE, вы можете использовать это zlib-дополнение к NSData из Google Toolbox для Mac
Временные файлы не требуются.

0
ответ дан 3 December 2019 в 00:08
поделиться

В этом ответе на этот вопрос я указываю на категорию вики CocoaDev в NSData который добавляет к этому классу поддержку zip / unzip. Это позволит вам делать это полностью в памяти.

1
ответ дан 3 December 2019 в 00:08
поделиться