Я создаю приложение для просмотра, которое должно принимать «любой» тип файла в качестве выбранного файла для просмотра. На самом деле он даже должен принимать папки, потому что в этом случае я хочу показать информацию, относящуюся к папке, например, количество файлов и т. Д. Теперь предположим, что я решил использовать архитектуру приложения на основе NSDocument
для этого. Как мне сделать мое приложение принимать любые файлы (и не получить эти [NSDocumentController reopenDocumentForURL:withContentsOfURL:display:completionHandler:]
неудачные сообщенияПодкласс под NSDocument должен принимать любые файлы
2
A
ответ
1
На основе обсуждения: iOS Document/File type associations - wildcard UTI? мне удалось получить его работу (кажется):
- Перейти в XCode (я использую 4.1) в «Навигаторе проектов» и выберите целевое приложение.
- Выберите вкладку «Информация»
- Перейдите к элементу «Типы документов» в списке. Если вы использовали создание проекта по умолчанию он будет заполнен вашим пользовательским типом документа.
- Теперь измените свойство
Name
наpublic.item
.
Теперь приложение сможет открыть любой файл в качестве своего документа. Следует помнить, что необходимо сохранить следующие (автоматически созданные при создании проекта) методы. Я удалил их, предполагая, что я не нуждался в них, и создал еще одну ошибку:
- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError
- (BOOL)readFromData:(NSData *)data ofType:(NSString *)typeName error:(NSError **)outError
и быть в состоянии иметь папки как документ, добавить:
- (BOOL)readFromFileWrapper:(NSFileWrapper *)fileWrapper ofType:(NSString *)typeName error:(NSError **)outError
На данный момент, похоже, все дополнительные замечания приветствуются.