Пользовательские типы файлов с программированием взаимодействия документов iOS - PullRequest
4 голосов
/ 25 января 2012

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

Мое приложение использует собственные типы файлов с уникальными расширениями. Сами файлы - это просто списки (xml), но я хочу, чтобы устройство обрабатывало файлы как открываемые только в моем приложении. Первоначально я реализовал материал Document Interaction, чтобы обрабатывать их как XML, пока он работал, но теперь я хочу, чтобы он обрабатывал их как двоичные файлы, которые он должен передать в мое приложение.

В настоящий момент, если у вас есть один из моих файлов во вложении электронной почты, iOS сначала показывает QuickLook (который просто извергает все текстовое содержимое XML-файла), прежде чем вы сможете выбрать «Открыть в». Точно так же, если один из моих файлов открывается в Safari, Safari просто показывает XML и вообще не дает возможности показать его в моем приложении.

Так как же заставить iOS не обрабатывать мои файлы как XML? Я изменил значение " Соответствует UTI " и значение " public.mime-type " в info.plist, но, похоже, это не имеет никакого эффекта.

Любые советы с благодарностью.

1 Ответ

0 голосов
/ 19 апреля 2012

Насколько я понимаю концепцию UIT Apple, вы не можете просто изменить расширение файла, чтобы изменить потенциальный UIT файла. Если файл содержит XML-данные, другие приложения, а также внутренние приложения могут распознать ваш контент и показать его внутри как XML.

Попробуйте сохранить ваши списки с NSPropertyListSerialization NSPropertyListBinaryFormat_v1_0 (тогда вы читаете XML)

Когда вы сделали это безуспешно, почему бы не попробовать это:

  1. используйте zlib для последующего сжатия XML-списков в заархивированный файл.
  2. сделать «уникальные» расширения файлов (<file> .myappname)

это должно "скрыть" другие приложения и быстрый просмотр.

Скажите, сработал ли у вас один из способов.

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