我正在构建一个查看器应用程序,它需要接受“任何”类型的文件作为要查看的选定文件。实际上它甚至应该接受文件夹,因为在这种情况下我想显示与文件夹相关的信息,例如文件数等。
现在假设我决定使用基于NSDocument
的应用程序架构来执行此操作。如何让我的应用程序接受任何类型的文件(而不是获取这些[NSDocumentController reopenDocumentForURL:withContentsOfURL:display:completionHandler:]
失败的消息?
答案 0 :(得分:1)
基于讨论: iOS Document/File type associations - wildcard UTI?我设法让它运转起来(似乎):
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
现在似乎有效,欢迎任何其他评论。