Мой подкласс NSDocument должен принимать любой тип файла

Я создаю приложение для просмотра, которое должно принимать "любой" тип файла в качестве выбранного файла для просмотра. На самом деле он даже должен принимать папки, потому что в этом случае я хочу показать информацию, относящуюся к папке, такую ​​как количество файлов и тому подобное. Теперь предположим, что я решил использовать NSDocument на основе архитектуры приложения, чтобы сделать это. Как мне сделать так, чтобы моя заявка принимала любые файлы (а не получала [NSDocumentController reopenDocumentForURL:withContentsOfURL:display:completionHandler:] неудачные сообщения?

1 ответ

Решение

Основано на обсуждении: Документ iOS / Ассоциации типов файлов - подстановочный знак UTI? Мне удалось заставить его работать (кажется):

  1. Зайдите в XCode (я использую 4.1) в "Project Navigator" и выберите целевое приложение.
  2. Выберите вкладку "Информация"
  3. Перейти к элементу "Типы документов" в списке. Если вы использовали создание проекта по умолчанию, в нем уже будет указан пользовательский тип документа.
  4. Теперь измените Name собственность на public.item,

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

  1. - (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError
  2. - (BOOL)readFromData:(NSData *)data ofType:(NSString *)typeName error:(NSError **)outError

и чтобы иметь возможность иметь папки в качестве документа, добавьте:

  • - (BOOL)readFromFileWrapper:(NSFileWrapper *)fileWrapper ofType:(NSString *)typeName error:(NSError **)outError

Кажется, пока работает, любые дополнительные замечания приветствуются.

Другие вопросы по тегам