3

我正在构建一个查看器应用程序,它需要接受“任何”类型的文件作为要查看的选定文件。事实上,它甚至应该接受文件夹,因为在这种情况下,我想显示与文件夹相关的信息,例如文件数量等。现在假设我决定使用NSDocument基于应用程序架构来执行此操作。如何让我的应用程序接受任何类型的文件(而不是收到这些[NSDocumentController reopenDocumentForURL:withContentsOfURL:display:completionHandler:]失败的消息?

4

1 回答 1

2

基于讨论: 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

它现在似乎有效,欢迎任何额外的评论。

于 2012-01-14T11:47:21.867 回答