2012-01-14 2 views
2

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

ответ

1

На основе обсуждения: iOS Document/File type associations - wildcard UTI? мне удалось получить его работу (кажется):

  1. Перейти в XCode (я использую 4.1) в «Навигаторе проектов» и выберите целевое приложение.
  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

На данный момент, похоже, все дополнительные замечания приветствуются.

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

  • Нет связанных вопросов^_^