Мой подкласс NSDocument должен принимать любой тип файла
Я создаю приложение для просмотра, которое должно принимать "любой" тип файла в качестве выбранного файла для просмотра. На самом деле он даже должен принимать папки, потому что в этом случае я хочу показать информацию, относящуюся к папке, такую как количество файлов и тому подобное. Теперь предположим, что я решил использовать NSDocument
на основе архитектуры приложения, чтобы сделать это. Как мне сделать так, чтобы моя заявка принимала любые файлы (а не получала [NSDocumentController reopenDocumentForURL:withContentsOfURL:display:completionHandler:]
неудачные сообщения?
1 ответ
Основано на обсуждении: Документ iOS / Ассоциации типов файлов - подстановочный знак UTI? Мне удалось заставить его работать (кажется):
- Зайдите в XCode (я использую 4.1) в "Project Navigator" и выберите целевое приложение.
- Выберите вкладку "Информация"
- Перейти к элементу "Типы документов" в списке. Если вы использовали создание проекта по умолчанию, в нем уже будет указан пользовательский тип документа.
- Теперь измените
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
Кажется, пока работает, любые дополнительные замечания приветствуются.