2012-01-14 20 views
2

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

回答

1

根据讨论: iOS Document/File type associations - wildcard 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

它似乎现在工作,欢迎任何其他评论。

相关问题