2014-11-08 4 views
0

Я хочу использовать NSDocument для хранения данных своего приложения. И я хочу, чтобы пользователь мог вставлять изображения в документы. Чтобы не сохранять путь к встроенному изображению в моем документе, я хочу включить их содержимое.Хранить несколько файлов в одном документе

Я видел, что, например, Keynote хранит все изображения в своем документе. Как я могу делать подобные вещи в своем классе, который расширяет NSDocument? Когда я переписываю методы readFromData и dataOfType, мне приходится иметь дело с NSData, что не позволит мне таких вещей. Нужно ли мне переопределять вещи fromUrl? Или мне придется иметь дело со всеми материалами низкого уровня, которые NSDocument делает для меня самостоятельно, и самостоятельно создать реализацию NSFilePresenter?

ответ

1

Вы должны сделать свой документ файловым упаковщиком, поэтому на самом деле он становится каталогом, но Finder покажет его как единую сущность. Методы, используемые в NSDocument:

  • fileWrapperOfType: ошибка:
  • readFromFileWrapper: OfType: ошибка:

Используйте их вместо readFromData и dataOfType. Вам также нужно будет прочитать об обертках файлов (NSFileWrapper).

Я прочитал несколько рекомендаций против использования оберток файлов. Я думаю, что я читал, что некоторые программы сжатия имеют проблемы с правильным архивированием и расширением их, например. для отправки по электронной почте. Я не думаю, что это была рекомендация яблока, хотя она звучит скорее как недостаток программы архивирования для меня.

Смежные вопросы