Типы документов против экспортированных и импортированных ИМП

23

Может ли кто-нибудь объяснить мне разницу между типами документов, экспортированными UTI и импортированными UTI в Xcode 5.1? Я хочу, чтобы мое приложение автоматически обнаруживало тип файла на основе расширения файла. Какой из этих трех мне нужно будет реализовать, чтобы сделать это?

    
задан NoodleOfDeath 25.07.2014 в 16:25
источник

1 ответ

38

Вы добавляете Тип документа , чтобы зарегистрировать, что ваше приложение может открыть этот тип документа, это просто, когда вы выбираете известного типа файла , но если тип файла неизвестен, вы также должны определить его в Импортированные UTI . И если вы определяете свой собственный тип файла, вы должны объявить его в экспортированных UTI и добавить этот Тип документа , чтобы открыть его.

Примеры:

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

Я хочу открыть EPUB, который не является известным типом файла, поэтому я зарегистрирую его в Импортированные UTI и Типы документов .

Я хочу открыть и зарегистрировать тип, над которым я являюсь авторитетным, поэтому я зарегистрирую его в Экспортированные UTI и в Типы документов .

Что касается вашего второго вопроса, обратите внимание, что определение типа с использованием типа документа приведет к тому, что ваше приложение появится в диалоговом окне «Открыть в», но не обязательно сделает ваше приложение отличным от того, какой тип файла получает ваше приложение, вы должны сами позаботиться об этом. Например, предположим, что ваше приложение является редактором изображений, и вы зарегистрировали как типы png, так и jpeg, когда пользователь хочет отредактировать изображение, которое ваше приложение получит, но оно не будет определять, какой тип будет автоматически, придется обрабатывать файл и отвечать на все, что он есть.

Некоторые релевантные ссылки:

Связанный с ним вопрос .

Очень хороший, но старый учебник по этому вопросу

    
ответ дан aldoram5 13.01.2016 в 21:53
  • , пожалуйста, вы знаете, что делать, если мое приложение является единственным производителем файла? Мое приложение не может читать (открыть) файл, но он создает (создает) его для использования с моим встроенным расширением приложения. Мой сценарий отлично работает, но я не могу заставить ios показывать значок, связанный с файлом ... –  user3441734 16.06.2016 в 10:02
  • @ user3441734: mmm, ну, я не разработал что-то вроде того, что вы описали, но, если единственная проблема, с которой вы столкнулись, это то, что значок файла не отображается, я бы рекомендовал вам проверить меню Exported UTis и убедитесь, что вы выбрали соответствующий значок для вашего типа файла в малом и большом значках. Если вы это сделали, и значок все еще не отображается, я думаю, вы должны задать новый вопрос и дать нам более подробную информацию о вашем приложении. –  aldoram5 16.06.2016 в 17:51
  • У меня есть два экспортированных UTI (с маленькими и большими значками в правильных размерах). У меня есть только один тип документа (для файла, которое может читать мое приложение). Мое расширение приложения может читать второе. Все работает, как и ожидалось. Недопустимая часть - это значок экспортированного UTI, который неизвестен (значок для файла в приложении электронной почты отсутствует, хотя вы можете открыть файл из меню действий электронной почты с моим расширением приложения) –  user3441734 17.06.2016 в 15:54
  • @ user3441734 Хорошо, я предлагаю вам взглянуть на этот вопрос, в соответствии с принятым ответом там, вы должны поместить имя значка в ключ CFBundleTypeIconFile в массив CFBundleDocumentTypes, а не в массив UTExportedTypeDeclarations. Также, возможно, стоит отметить, что OP в этом вопросе использует тип файла icns для своих значков, вы также должны использовать этот тип. –  aldoram5 17.06.2016 в 17:04
  • Ты спас мне жизнь. –  Joseph E. 07.07.2016 в 22:00
Показать остальные комментарии