0

我正在实现 NSApplicationDelegate 的 application:openFiles 以获得特定文档的一些自定义行为。不过,对于某些文档,我想要默认行为(只是打开和显示它们)。因此,在对文档进行排序后,我为每个文档调用:

[[NSDocumentController sharedDocumentController] openDocumentWithContentsOfURL:[NSURL URLWithString:camDoc] display:YES completionHandler:^(NSDocument *document, BOOL alreadyOpen, NSError *error){
    NSLog(@"%@",document);
}];

在控制台中记录了以下错误:

*** setObjectForKey: key cannot be nil

永远不会调用完成处理程序。如果我注释掉完整的 openFiles 方法,则文档可以正常打开,因此 NSDocument 类似乎已正确实现。

我尝试暂时关闭沙盒,因为委托方法接收 NSStrings 而不是 URL,所以我预计这可能是问题所在。那没有帮助。

这里出了什么问题?

额外问题:我怎样才能让应用程序(从 Finder)打开安全范围的 URL?

4

1 回答 1

0

原来问题是由于创建 NSURL 的方式造成的。那当然应该使用 fileURL 方法。

于 2015-11-11T07:25:32.473 回答